505

Possible Duplicate:
Generic methods and multiple constraints

I need a generic function that has two type constraints, each inheriting from a different base class. I know how to do this with one type:

void foo<T>() where T : BaseClass

However, I don't know how to do this with two types:

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

How do you do this? (using .NET 2)

0

1 Answer 1

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

More info here:
https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters#constraining-multiple-parameters

Sign up to request clarification or add additional context in comments.

4 Comments

Search for "Constraining Multiple Parameters" if you don't want to read it all.
Is it possible to have a constrain that would do this: void foo<TOne, TTwo>() where TOne : Class where TTwo : Class where TOne != TTwo so basically we don't know what TOne and TTwo are except that they are reference types but cannot be the same
@IronHide: I'd love to be proven wrong here ... but I'm 99% sure this isn't possible :)
And how to use ExtensionMethod with multiple generics