2011-08-02 8 views
0

J'ai cette interface et classe generi écrit en Javamettre en œuvre la fonction java dans C#

public abstract class MyRootAbstractClass<W> 
{ 
} 

public abstract class MyDerivedAbstractClass<W extends MyRootFatherClass> 
{ 
} 

Avis :MyRootFatherClass (dans la déclaration MyDeriveAbstractClass) ne demande pas de type générique (<W>).

Est-ce que quelqu'un sait Comment puis-je convertir ce code en C# ???

+1

En fait, vous avez seulement deux classes abstraites génériques ... – BoltClock

Répondre

5

Me semble:

public abstract class MyRootAbstractClass<T> 
{ 
} 

public abstract class MyDerivedAbstractClass<T> where T : MyRootFatherClass 
{ 
} 

Le where T : MyRootFatherClass est une contrainte de type générique afin que vous ne pouvez pas créer un MyDerivedAbstractClass<T> pour T arbitraires types - que MyRootFatherClass et sous-classes.

Notez que j'ai renommé W en T afin de respecter les conventions de dénomination .NET.

5

Vous pouvez utiliser un generic constraint:

public abstract class MyRootAbstractClass<W> 
{ 
} 

public abstract class MyDerivedAbstractClass<W> where W : MyRootFatherClass 
{ 
} 
+0

Il ne compile pas, il demande d'insérer un type générique lors de la mise en œuvre MyRootFatherClass (Par exemple: MyRootFatherClass ) – Liran

+0

Exemple de modification: classe abstraite publique MyDerivedAbstractClass où W: MyRootFatherClass .JAVA ne demande pas de déclaration sur le type générique lors de la déclaration de la classe générique (MyRootFatherClass) en tant que contrainte. – Liran

Questions connexes