[英]TypeScript: Equivalent of C#'s Generic Type Constraint for extending class?
[英]C# equivalent syntax for Java generic class type
我在下面的C#中寻找Java代码的等效语法。
ArrayList<Class <? extends A>> list = new ArrayList<Class<? extends A>>();
// Sample usage
list.add(A.class);
list.add(B.class); // B extends A
上面的列表基本上只接受A(或A)的子类作为输入。
预先感谢。
C#中没有等效的方法。 C#中的泛型在各种方面都与Java中的泛型有很大不同,包括协方差和相反方差的工作方式。
您可能具有对类型参数施加约束的通用方法(或通用类型),如下所示:
public void Foo<T>(IList<T> list) where T : SomeClass
要么
public class Foo<T> where T : SomeClass
...但是Type
本身(相当于.NET的Class<T>
)是非泛型的,因此无法说“这是扩展A
的类型的列表”。
如果您向我们提供有关您要实现的目标的更多信息,我们可能会为您提供更多帮助。
C#语言从2.0版开始具有泛型:
http://msdn.microsoft.com/en-us/library/512aeb7t.aspx
类型约束可以在这里找到:
http://msdn.microsoft.com/en-us/library/d5x73970.aspx
我主要是Java程序员,而不是C#程序员,所以我不确定您需要的确切语法,但是您应该可以从那里找到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.