Generic method multiple (OR) type constraint

asp.net-mvc-3, c#, types

Solution

That is not possible. You can, however, define overloads for specific types:

public void test(string a, string arg);
public void test(string a, Exception arg);

If those are part of a generic class, they will be preferred over the generic version of the method.

Problem

Reading this, I learned it was possible to allow a method to accept parameters of multiple types by making it a generic method. In the example, the following code is used with a type constraint to ensure "U" is an `IEnumerable<T>`. ``` public T DoSomething<U, T>(U arg) where U : IEnumerable<T> { return arg.First(); } ``` I found some more code which allowed adding multiple type constraints, such as: ``` public void test<T>(string a, T arg) where T: ParentClass, ChildClass { //do something } ``` However, this code appears to enforce that `arg` must be both a type of `ParentClass` and `ChildClass`. What I want to do is say that arg could be a type of `ParentClass` or `ChildClass` in the following manner: ``` public void test<T>(string a, T arg) where T: string OR Exception { //do something } ``` Your help is appreciated as always!

Original source

Related problems