1
为什么SqlInt32.Null不被视为编译时常量?因为我不能使用它作为默认参数的默认值。默认参数和编译时间常量
为什么SqlInt32.Null不被视为编译时常量?因为我不能使用它作为默认参数的默认值。默认参数和编译时间常量
SqlInt32.Null
是static readonly
字段,而不是一个常数。这意味着它的值在编译时可能不知道。
一个static readonly
字段和const
之间的主要区别在于,const
只能在它的声明进行初始化,而static readonly
字段可以在声明或在一个构造被初始化。
实施例:
public class SomeClass
{
public static readonly int SomeValue;
static SomeClass()
{
SomeValue = DateTime.Now.Millisecond;
}
}
在上述一个static readonly
字段的示例是由静态构造在照亮为什么它不能在编译时被确定的方式初始化。