2009-06-08 6 views
254

dupliquées possible:
Generic methods and multiple constraintsC# syntaxe des génériques pour les contraintes des paramètres de type multiple

je besoin d'une fonction générique qui a deux contraintes de type, chacun héritant d'une classe de base différente. Je sais comment faire avec un type:

void foo<T>() where T : BaseClass 

Cependant, je ne sais pas comment faire cela avec deux types:

void foo<TOne, TTwo>() where TOne : BaseOne // and TTwo : BaseTwo ??? 

Comment faites-vous cela? (En utilisant .NET 2)

Répondre

451
void foo<TOne, TTwo>() 
    where TOne : BaseOne 
    where TTwo : BaseTwo 

Plus d'infos ici:
http://msdn.microsoft.com/en-us/library/d5x73970.aspx

+7

Recherche "Contraindre plusieurs paramètres" si vous ne voulez pas lire tout. – RichardOD

+0

Est-il possible d'avoir une contrainte qui ferait ceci: 'void foo () où TOne: Classe où TTwo: Classe où TOne! = TTwo' donc fondamentalement nous ne savons pas ce que TOne et TTwo sont sauf qu'ils sont des types de référence mais ne peuvent pas être les mêmes – IronHide

+0

@IronHide: J'aimerais bien avoir tort ici ... mais je suis sûr à 99% que ce n'est pas possible :) –

Questions connexes