Цитата MSDN - const (ссылка на С#):
Постоянное выражение - это выражение, которое может быть полностью оценено во время компиляции. Поэтому единственными возможными значениями констант ссылочных типов являются строка и нуль.
В соответствии с выражением typeof (T) и Object.GetType() typeof(T)
- это выражение времени компиляции.
Итак, почему нельзя < <21 > быть постоянным значением?
Следующий код не будет компилироваться:
public const Type INT_TYPE = typeof(int);