如何解决泛型方法多 (OR) 类型约束
这是不可能的。但是,您可以为特定类型定义重载:
public void test(string a, string arg);
public void test(string a, Exception arg);
如果它们是泛型类的一部分,则它们将优于该方法的泛型版本。
解决方法
阅读本文,我了解到可以通过将其设为泛型方法来允许方法接受多种类型的参数。在示例中,以下代码与类型约束一起使用,以确保
“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
}
一如既往地感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。