Почему Char.MinVal / .MaxVal не являются статичными? - PullRequest
2 голосов
/ 20 февраля 2009
public struct Char
{
 public const char MaxValue = (char)0xffff;
 public const char MinValue = '\0';
}

Почему бы не сделать эти поля статичными? Зачем он всегда выделяет дополнительную память для каждого символа, пока эти два значения постоянны?

Редактировать : Я не знаю, как я мог забыть о том, что я неявно статичен!

Ответы [ 2 ]

13 голосов
/ 20 февраля 2009

константные поля статичны. Из раздела 10.4 спецификации:

Даже если константы считаются статические члены, постоянное объявление * не требует и не позволяет статический модификатор. Это ошибка для того же модификатор, чтобы появиться несколько раз в объявление константы.

10 голосов
/ 20 февраля 2009

Потому что они статичны.

Поля Const неявно статичны.

...