Чтение этого, я узнал, что можно позволить методу принимать параметры нескольких типов, сделав его общим методом. В этом примере следующий код используется с ограничением типа, чтобы гарантировать, что "U" - это IEnumerable<T>
.
public T DoSomething<U, T>(U arg) where U : IEnumerable<T>
{
return arg.First();
}
Я нашел еще несколько кодов, которые позволили добавить несколько ограничений типа, например:
public void test<T>(string a, T arg) where T: ParentClass, ChildClass
{
//do something
}
Однако этот код, как представляется, обеспечивает, чтобы arg
должен быть как типом ParentClass
, так и ChildClass
. Я хочу сказать, что arg может быть типом ParentClass
или ChildClass
следующим образом:
public void test<T>(string a, T arg) where T: string OR Exception
{
//do something
}
Ваша помощь приветствуется, как всегда!