Ограничение типа универсального метода с несколькими типами (OR)

Читая this, я узнал, что можно разрешить методу принимать параметры нескольких типов, сделав его универсальным методом. . В примере следующий код используется с ограничением типа, чтобы гарантировать, что "U" является IEnumerable.

public T DoSomething(U arg) where U : IEnumerable
{
    return arg.First();
}

Я нашел еще код, который позволял добавлять ограничения нескольких типов, например:

public void test(string a, T arg) where T: ParentClass, ChildClass 
{
    //do something
}

Однако этот код, по-видимому, требует, чтобы argбыл одновременно типом ParentClassиДочерний класс. Что я хочу сделать, так это сказать, что arg может быть типом ParentClassилиChildClassследующим образом:

public void test(string a, T arg) where T: string OR Exception
{
//do something
}

Ваша помощь приветствуется, как всегда!

121
задан Uwe Keim 29 August 2017 в 13:55
поделиться