Если у меня есть 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;
}
}
Или я должен сначала прочитать его, а затем использовать переключатель для значения чтения следующим образом:
private void MyFunc()
{
var myEnumVal = this.MyEnumVal;
switch (myEnumVal)
{
case MyEnum.First:
// Do Something
break;
case MyEnum.Second:
// Do Something
break;
}
}
Если использовать if ... else
как в этом вопросе , мне нужно сначала прочитать значение. То же самое с оператором switch
? Каково поведение оператора switch
? Читает ли оно значение в каждом операторе case
или читает только один раз в начале?