Tag: type parameter

调用类型参数的方法

有没有办法做这样的代码: class GenericClass { void functionA() { TA(); } } 或者,如何调用类型参数的函数(类型是我的自定义类)。

其中t:多个类

List Foo(Ilist list) where T : ?? 有没有办法强制执行T. 少数几个class级之一? 最后我想对T进行切换.. 谢谢。

如何比较通用参数类型?

我有一个包含generics类的类: class MyClass { } T类型可以是任何类型,包括MyClass 。 是的,这有点递归,可以有像MyClass<MyClass<MyClass>> 。 在某些时候,在MyClass中,我想知道T是MyClass还是从MyClass派生的任何类型。 (无论AnyOtherType是什么,只需要知道T是否是MyClass)。 那么,我如何将T类型与MyClass进行比较? 我想出的另一件事是,为了避免参数问题,我要让MyClassinheritanceMyClass (没有参数),以便比较更容易。 class MyClass : MyClass 但问题仍然存在: How can I compare T with MyClass to know if it’s some type that inherits MyClass??

接口作为类型约束和接口作为参数之间的区别?

如果我想创建一个将IList实例作为参数(或任何其他接口,但让我们使用IList作为示例)的方法,我可以创建一个带有类型约束的generics方法,例如: public static void Foo1(T list) where T : IList { } 或者,我可以创建一个直接获取IList参数的方法: public static void Foo2(IList list) { } 出于所有意图和目的,似乎这些方法的行为完全相同: List myList = new List(); Foo1(myList); Foo2(myList); 所以这是我的问题 – 这两种方法之间的区别是什么? 似乎第二种方法稍微可读; 我应该注意哪些其他差异(生成不同的IL等)? 提前致谢。