c# - C#'s equivalent of Java' s <?在泛型中扩展 Base>

标签 c# .net generics inheritance extends

在 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/

相关文章:

c# - 如何创建新的自定义View(UserControl)?阿瓦隆码头

c# - 在 C# 中更改名称和移动文件

java - 泛型。创建 2 个对象并将它们添加到另一个对象

java - 使用可变参数实现泛型方法

c# - 拦截通过 DynamicProxy 返回通用 Task<> 的异步方法

c# - 如何使用 Linq where 语句动态获取另一个属性中的属性值

c# - 在代码隐藏文件中,如何将 contentEditable ="true"属性分配给文本框?

c# - 我如何处理asp.net中的异常?

c# - Protobuf-net 在与泛型一起用于反序列化时要求 TypeModel.CS

c# - 如何在某些类中查看可能的异常列表。(C#.NET)