我是新来C#
,如何以下普通使用C#,我想的一样,如下面C#
Java
声明,如何使用通用扩展了C#
List<? extends MySuperClass> list= new ArrayList<MySubClass>();
Java
上面允许的话,我们可以实现同样在C#
?
我是新来C#
,如何以下普通使用C#,我想的一样,如下面C#
Java
声明,如何使用通用扩展了C#
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
我如何使用这个变量如下 'public AbstractIBaseBo <?扩展AbstractDomain> abstractIBaseBo = null;' –
@AnchitPancholi我觉得设计很奇怪。你应该避免声明这样的字段。 –
@AnchitPancholi我不认为你可以。我可能错了,因为我对C#不熟悉,因为我不熟悉Java。我认为你可以有一个'AbstractIBaseBo
在C#中被称为泛型约束。 –
相关:http://stackoverflow.com/q/32664/1065197 http://stackoverflow.com/q/588643/1065197 –
这不是一个在Java中使用泛型的好例子。 –