为什么Char.MinVal/.MaxVal不是静态的?

aba*_*hev 2 .net char

public struct Char
{
 public const char MaxValue = (char)0xffff;
 public const char MinValue = '\0';
}
Run Code Online (Sandbox Code Playgroud)

为什么不将这些字段设为静态?什么为它总是为每个char分配额外的内存,而这两个值是永久的?

编辑:我不知道怎么会忘记静态的静态!

Jon*_*eet 13

const字段是隐含的.从规范的10.4节:

尽管常量被认为是静态成员,但常量声明 既不需要也不允许使用静态 修饰符.同一修饰符在常量声明中多次出现是错误的.


Ric*_*ard 10

因为它们是静态的.

Const字段是隐式静态的.