C# 如何为枚举设置一些伪值?
我从foreach循环中获取枚举值。在某些循环中使用了这些枚举值。所以我不能引入新的枚举值。代码如下C# 如何为枚举设置一些伪值?,c#,visual-studio,enums,C#,Visual Studio,Enums,我从foreach循环中获取枚举值。在某些循环中使用了这些枚举值。所以我不能引入新的枚举值。代码如下 enum Appraiser{A11,A12,A13,A14}; Appraiser selected_Appraiser = null; foreach(var key in AppraiserStruct.appraisers.Keys) if (selected_ComboBox.Text.ToLower() == key.ToString().ToLower()) {
enum Appraiser{A11,A12,A13,A14};
Appraiser selected_Appraiser = null;
foreach(var key in AppraiserStruct.appraisers.Keys)
if (selected_ComboBox.Text.ToLower() == key.ToString().ToLower())
{
selected_Appraiser = key;
break;
}
int min = dictionary[selected_Appraiser].min;
现在使用visual studio将错误作为未初始化的选定变量\u评估器
1但如果我将所选评估人设置为空。这意味着不能将null赋值给值类型
2如果我能做到
Appraiser? selected_Appraiser = null;
那么它是说评估师?无法转换为评估人。有人能说怎么做到这一点吗
注意:我使用的是VS 2008 c express edition。您可以使用运算符指定枚举成员的默认值
所选评估人\u评估人=默认评估人;
它会将所选的评估师设置为第一个评估师成员,即A11。
枚举类型E的默认值是由
表达式E0,即使零没有相应的枚举
成员
默认情况下,枚举成员的常量值为int类型,从零开始,按照定义顺序增加一。如果常量值对您不重要,您也可以从1开始计算
枚举估价师
{
A11=1,
A12,
A13,
A14
}
但更好的方法是向评估师添加一些默认值,比如“无”,然后使用它。它有助于确保找到某个值的逻辑正常工作,而不是使用默认值
枚举估价师{A11,A12,A13,A14,无};
所选估价师\估价师=估价师。无;
...
//找到值
如果选择了评估师!=估价员,没有
{
}
默认情况下,评估器枚举使用int作为基础类型,并具有0到3之间的命名值:
enum Appraiser
{
A11, // 0
A12, // 1
A13, // 2
A14 // 3
};
您可以选择另一个未使用的int值,并将其强制转换为assessment。它不需要命名
Appraiser selected_Appraiser = (Appraiser)(-1);
要解决无法转换评估师的问题?进入估价师:要读取可为空变量的值,请使用value属性。例如,selected_evalumer.Value==evalumer.A11默认值在较新的C版本中也有效。@UweKeim默认值为C 7.1功能,默认值从C 2或C 3存在,IIRC。我不认为VS2008C速成版支持最新的功能