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
字段的示例是由靜態構造在照亮爲什麼它不能在編譯時被確定的方式初始化。