Я пытаюсь преобразовать значение значения параметра T типового типа в целое число, убедившись, что T фактически является целым числом:
public class Test
{
void DoSomething<T>(T value)
{
var type = typeof(T);
if (type == typeof(int))
{
int x = (int)value; // Error 167 Cannot convert type 'T' to 'int'
int y = (int)(object)value; // works though boxing and unboxing
}
}
}
Хотя он работает через бокс и распаковку, это дополнительная служебная нагрузка, и я блуждал, если есть способ сделать это напрямую.