如果我有Enum以下内容:
private object myEnumValLock = new object();
private MyEnum _myEnumVal;
public MyEnum MyEnumVal
{
get
{
lock(this.myEnumValLock)
{
return this._myEnumVal;
}
}
set
{
lock(this.myEnumValLock)
{
if (value != this._myEnumVal)
{
this.HandleNewMyEnumVal(this._myEnumVal, value);
this._myEnumVal = value;
}
}
}
}
使用开关盒时,是否可以直接使用以下属性:
private void MyFunc()
{
switch (this.MyEnumVal)
{
case MyEnum.First:
// Do Something
break;
case MyEnum.Second:
// Do Something
break;
}
}
还是我应该先读取它,然后在读取值上使用switch,如下所示:
private void MyFunc()
{
var myEnumVal = this.MyEnumVal;
switch (myEnumVal)
{
case MyEnum.First:
// Do Something
break;
case MyEnum.Second:
// Do Something
break;
}
}
如果if ... else在此问题中使用as,则需要先读取该值。switch陈述是否相同?该switch语句的行为是什么?它是在每个case语句中读取值还是在开始时仅读取一次?
鸿蒙传说
相关分类