К сожалению, одним из недостатков C # является то, что вы не можете легко создавать универсальные числовые алгоритмы. Вы можете взломать его, например, используя этот пример из MSDN:
public abstract class BaseCalculator<T>
{
public abstract T Add(T arg1,T arg2);
public abstract T Subtract(T arg1,T arg2);
public abstract T Divide(T arg1,T arg2);
public abstract T Multiply(T arg1,T arg2);
}
public class IntCalculator : BaseCalculator<int>
{
public override int Add(int arg1, int arg2)
{
return arg1 + arg2;
}
//Rest of the methods
}
Но, вообще говоря, библиотеки .Net просто имеют отдельную реализацию для такого рода вещей, а не пытаются использовать дженерики.