簡體   English   中英

Java通用類類型的C#等效語法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM