gpt4 book ai didi

c# - 在泛型类型参数上调用静态方法

转载 作者:IT王子 更新时间:2023-10-29 03:36:22 25 4
gpt4 key购买 nike

我希望做这样的事情,但它在 C# 中似乎是非法的:

public Collection MethodThatFetchesSomething<T>()
where T : SomeBaseClass
{
return T.StaticMethodOnSomeBaseClassThatReturnsCollection();
}

我得到一个编译时错误:

'T' is a 'type parameter', which is not valid in the given context.

给定泛型类型参数,如何调用泛型类的静态方法?给定约束,静态方法必须可用。

最佳答案

在这种情况下,您应该直接在受限类型上调用静态方法。 C#(和 CLR)不支持虚拟静态方法。所以:

T.StaticMethodOnSomeBaseClassThatReturnsCollection

...可以与:

SomeBaseClass.StaticMethodOnSomeBaseClassThatReturnsCollection

遍历泛型类型参数是一种不需要的间接寻址,因此不受支持。

关于c# - 在泛型类型参数上调用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/196661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com