【发布时间】:2014-06-19 22:15:44
【问题描述】:
我正在使用 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;
}
我们将不胜感激任何改进。
【问题讨论】:
-
一个建议:去掉下划线并使用Capital Camel Case
标签: c# sharpdevelop