Перечисляемые типы преобразуются к своему базовому типу и обратно с применением явного преобразования:
enum Values
{
A = 1,
B = 5,
C = 3,
D = 42
}
class Test
{
public static void Main()
{
Values v = (Values) 2;
int ival = (int) v;
}
}
У этого правила существует единственное исключение: константа 0 преобразуется к перечисляемому типу без явного указания типа. Это позволяет использовать конструкции следующего вида:
public void DoSomething(BitValues bv)
{
if (bv == 0)
{
}
}
Если бы не это исключение, команду if пришлось бы записывать в следующем виде:
if (bv == (BitValues) 0)
Хотя в данном примере это приемлемо, на практике, если перечисление находится на низком уровне иерархии типов, конструкция получается довольно громоздкой:
if (bv == (CornSoft.PlotLibrary.Drawing.LineStyle.BitValues) 0)
0 коммент.:
Отправить комментарий