Можно ли каким-либо способом вернуть метод из какого-либо одного из нескольких типов? Например, у меня есть следующее:
public static T ParseAttributeValue<T>(this XElement element, string attribute)
{
if(typeof(T) == typeof(Int32))
{
return Int32.Parse(element.Attribute(attribute).Value);
}
if(typeof(T) == typeof(Double))
{
return Double.Parse(element.Attribute(attribute).Value);
}
if(typeof(T) == typeof(String))
{
return element.Attribute(attribute).Value;
}
if(typeof(T) == typeof(ItemLookupType))
{
return Enum.Parse(typeof(T), element.Attribute(attribute).Value);
}
}
(Это всего лишь очень быстрый макет, я знаю, что любой производственный код должен быть значительно более тщательным в нулевых проверках и т.д.)
Но компилятор ему не нравится, жалуясь, что Int32
не может быть неявно преобразован в T
(он также не работает с листом). Я могу понять, что. Во время компиляции он не знает, что такое T
, но я проверял его заранее. В любом случае я могу сделать эту работу?