阅读本文,我了解到有可能允许方法通过使其成为通用方法来接受多种类型的参数.在该示例中,以下代码与类型约束一起使用以确保"U"是一个IEnumerable<T>.
public T DoSomething<U, T>(U arg) where U : IEnumerable<T>
{
return arg.First();
}
Run Code Online (Sandbox Code Playgroud)
我发现了一些允许添加多个类型约束的代码,例如:
public void test<T>(string a, T arg) where T: ParentClass, ChildClass
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
然而,这个代码出现到强制执行arg必须是一个类型的ParentClass 和 ChildClass.我想要做的是说arg可以是一种类型ParentClass 或 ChildClass以下列方式:
public void test<T>(string a, T arg) where T: string OR Exception
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
一如既往地感谢您的帮助!
有没有可行的方法使用泛型来创建一个不依赖于选择存储数据的基类型的数学库?
换句话说,我们假设我想写一个Fraction类.该分数可以由两个整数或两个双精度或其他表示.重要的是基本的四个算术运算都有明确的定义.所以,我希望能够写Fraction<int> frac = new Fraction<int>(1,2)和/或Fraction<double> frac = new Fraction<double>(0.1, 1.0).
不幸的是,没有代表四种基本操作的接口(+, - ,*,/).有没有人找到一种可行的,可行的方法来实现这一点?