Това нормално поведение ли е?
Писане на кастинг за enum
1) Опитайте синтактичен анализ на текст 2) Резервен анализ на int.
int анализът никога не извежда грешка...
Опитайте да стартирате следния скрипт в LinqPad, не съм тествал други компилатори освен linqpad, но се съмнявам, че това е проблем с Linqpad.
Как мога да хвърля грешка, ако int съвпадението е неуспешно?
void Main()
{
FieldAttributes fieldattributeenum = FieldAttributes.Assembly;
B b = B.Valx1;
b.Dump("B = "+((int)b).ToString()); //Valx1 (11);
fieldattributeenum.Dump("fieldattributeenum = " +((int)fieldattributeenum).ToString()); //Assembly (3)
b = (B) Enum.ToObject(typeof(B), (int) fieldattributeenum);
b.Dump("B = "+((int)b).ToString()); //valcorrect3 (3)
A a = (A) Enum.ToObject(typeof(A), (int) fieldattributeenum); //
a.Dump("A = "+ ((int)a).ToString()); // ??? (3)
}
public enum B{
Valx1=11,
Valx2=12,
Valx3=13,
Valx4=14,
valcorrect3 = 3
}
public enum A{
Valx1=11,
Valx2=12,
Valx3=13,
Valx4=14,
valcorrect3
}