Смотрите этот пример кода. Это приведет к ненужной упаковке/распаковке значения.
Код: Выделить всё
private int Foo(TEnum value)
where TEnum : struct // C# does not allow enum constraint
{
return (int) (ValueType) value;
}
Код: Выделить всё
.method public hidebysig instance int32 Foo(!!TEnum 'value') cil managed
{
.maxstack 8
IL_0000: ldarg.1
IL_0001: box !!TEnum
IL_0006: unbox.any [mscorlib]System.Int32
IL_000b: ret
}
Подробнее здесь: https://stackoverflow.com/questions/118 ... num-to-int
Мобильная версия