虚拟代码:
public object Addition(object a, object b)
{
var type = a.GetType();
var op = type.GetMethod("op_Addition", BindingFlags.Static | BindingFlags.Public);
return op.Invoke(null, new object[] { a, b });
}此方法向int/float/double抱怨,无法找到这些方法(Op_Addition)。
,那么如何构建一个通用的加法?
发布于 2012-06-22 11:39:46
是的,它们不是像这样存在的自定义操作符,而是内置的IL指令。
(除了C#编译器构建对string.Concat的调用外,字符串连接几乎也是如此。)
如果使用的是C# 4和.NET 4,最简单的方法是使用动态类型:
public dynamic Addition(dynamic x, dynamic y)
{
return x + y;
}对于早期版本,您需要特殊情况某些类型:(
还不清楚您的上下文是什么,但您可能会发现Marc的article on generic operators很有趣。
https://stackoverflow.com/questions/11155444
复制相似问题