昨天,我正在向我的朋友解释 C# 的通用约束。在演示where T : CLASSNAME
约束时,我做了这样的事情:
public class UnusableClass<T> where T : UnusableClass<T>
{
public static int method(T input){
return 0;
}
}
看到它编译真的很惊讶。然而,经过一番思考,我认为从编译器的角度来看它是完全合法的 -UnusableClass<T>
与可以在此约束中使用的任何其他类一样多。
然而,这留下了几个问题:如何使用这个类?是否有可能
- 实例化它?
- 继承它?
- 调用它的静态方法
int method
?
如果是,如何?
如果其中任何一个是可能的,那将是什么类型T
?