最佳答案
通过阅读 这个,我了解到可以通过使一个方法成为泛型方法来允许该方法接受多个类型的参数。在此示例中,下面的代码与类型约束一起使用,以确保“ 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
}
感谢您的帮助,一如既往!