如果我有一个被限制为“int”类型的泛型方法,那么我当然应该能够将整数转换为泛型 T 类型。例如...
public T ExampleMethod<T>(int unchanged) where T : int
{
return (T)unchanged;
}
...编译器抱怨无法将类型“int”转换为“T”,但我有一个约束表明目标是整数。那么它肯定应该工作吗?
更新:
实际情况是我想要一个返回枚举值的辅助方法。所以我理想的辅助方法会更像这样......
public T GetAttributeAsEnum<T>(XmlReader reader, string name) where T : enum
{
string s = reader.GetAttribute(name);
int i = int.Parse(s);
return (T)i;
}
...并像这样使用它...
StateEnum x = GetAttributeAsEnum<StateEnum>(xmlReader, "State");
CategoryEnum y = GetAttributeAsEnum<CategoryEnum>(xmlReader, "Category");
OtherEnum z = GetAttributeAsEnum<OtherEnum>(xmlReader, "Other");
...但你不能通过枚举来限制。