如何在c#中使用泛型扩展
本文关键字:泛型 扩展 | 更新日期: 2023-09-27 18:16:40
我是C#
的新手,如何使用下面的通用c#,我想在C#
中使用下面的Java
语句,
List<? extends MySuperClass> list= new ArrayList<MySubClass>();
Java
允许以上,我们可以在C#
中实现相同的吗?
c#没有通配符。所以简单的答案是否定的,没有直接的等价物。
然而,我认为在Java中编写这行代码没有多大意义,因为你丢掉了类型信息。你不妨写
List<MySubClass> list = new ArrayList<MySubClass>();
在Java中使用通配符的主要原因是允许方法参数尽可能通用,如:
static void foo(List<? extends MySuperClass> list)
你可以在c#中这样做:
static void foo<T>(IList<T> list) where T : MySuperClass