在泛型类型参数上调用静态方法
我希望这样做,但是在C#中似乎是非法的:
public Collection MethodThatFetchesSomething<T>() where T : SomeBaseClass
{
return T.StaticMethodOnSomeBaseClassThatReturnsCollection();
}
我收到一个编译时错误:“’T’是一个’类型参数’,在给定的上下文中无效。”
给定通用类型参数,如何在通用类上调用静态方法?给定约束,静态方法必须可用。
回答:
在这种情况下,您应该直接在约束类型上调用static方法。C#(和CLR)不支持虚拟静态方法。所以:
T.StaticMethodOnSomeBaseClassThatReturnsCollection
…没有什么不同:
SomeBaseClass.StaticMethodOnSomeBaseClassThatReturnsCollection
通过泛型类型参数是不需要的间接寻址,因此不受支持。
以上是 在泛型类型参数上调用静态方法 的全部内容, 来源链接: utcz.com/qa/423825.html