我正在使用c#並試圖爲我的自定義類型常量字段分配邏輯(非空值)。這裏是如何。爲什麼我不能爲我的常量字段賦值?
public class Types_of_Accuracy{
1 public const Types_of_Accuracy Decimal_Places=Type_of_Accuracy(false);
2 private bool SD;
3 public const Types_of_Accuracy Significant_Digits=Type_of_Accuracy(true);
4 private static Types_of_Accuracy Type_of_Accuracy(bool Significant_digits){
5 Types_of_Accuracy TA=new Types_of_Accuracy();
6 TA.SD=Significant_digits;
7 return TA;
8 }
}
當我嘗試編譯。我得到這些錯誤。
- 第1行|'Types_of_Accuracy.Decimal_Places'的類型是'Types_of_Accuracy'。除字符串以外的引用類型的const字段只能用null初始化。 (CS0134)
- 第3行|'Types_of_Accuracy.Significant_Digits'的類型是'Types_of_Accuracy'。除字符串以外的引用類型的const字段只能用null初始化。 (CS0134)
到目前爲止,我最喜歡的解決方案是用下面的代碼替換上面的代碼。
public class Types_of_Accuracy{
1 static Types_of_Accuracy(){
2 Decimal_Places.SD=false;
3 Significant_Digits.SD=true;
4 }
5 public const Types_of_Accuracy Decimal_Places=null;
6 private bool SD;
7 public const Types_of_Accuracy Significant_Digits=null;
}
任何改進將不勝感激。
一個建議:刪除下劃線並使用[資本駱駝案例](http://en.wikipedia.org/wiki/CamelCase) –