在 Java 中,我可以执行以下操作:(假设 Subclass
extends Base
):
ArrayList<? extends Base> aList = new ArrayList<Subclass>();
C# .NET 中的等价物是什么?没有? extends
关键字显然,这不起作用:
List<Base> aList = new List<Subclass>();
最佳答案
实际上有一个等价物(有点),where
关键词。我不知道它有多“接近”。我有一个功能需要做类似的事情。
我找到了一个 msdn page关于它。
我不知道你是否可以为一个变量做这个内联,但是对于一个类你可以做:
public class MyArray<T> where T: someBaseClass
或一个功能
public T getArrayList<T>(ArrayList<T> arr) where T: someBaseClass
我没有在页面上看到它,但使用了 where
关键字可能是变量。
关于c# - C#'s equivalent of Java' s <?在泛型中扩展 Base>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4732494/