gpt4 book ai didi

c# - 通用问题...从通用类调用静态方法

转载 作者:行者123 更新时间:2023-11-30 14:42:02 24 4
gpt4 key购买 nike

我有一个泛型类:

public class MyList<LinkedItem> : List<LinkedItem> where LinkedItem : MyItem, new()
{
}

从那个通用类,我想从 LinkedItem 类访问一个静态函数,它是 MyItem 类的后代。 (因此无需创建 LinkedItem 的实例)。

这可能吗?

谢谢,

埃里克

最佳答案

是的,这是可能的,但您必须通过从 typeof(T).GetMethod("Foo", BindingFlags.Public | BindingFlags.Static) 获取 MethodInfo 来使用反射然后调用Invoke在上面。

它可能非常有用,特别是如果在 ConstructorInfo 而不是 MethodInfo 上使用相同的技术来创建在构造函数中使用参数的通用工厂。虽然它是一种谨慎使用的方法。特别是,无法在编译时保证所讨论的类型具有所需签名的静态方法,因此类型安全性已不复存在,此类错误直到运行时才会被捕获。

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

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