首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >op_addition在[int,float,double]中的位置

op_addition在[int,float,double]中的位置
EN

Stack Overflow用户
提问于 2012-06-22 11:37:00
回答 1查看 946关注 0票数 7

虚拟代码:

代码语言:javascript
复制
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)。

,那么如何构建一个通用的加法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-22 11:39:46

是的,它们不是像这样存在的自定义操作符,而是内置的IL指令。

(除了C#编译器构建对string.Concat的调用外,字符串连接几乎也是如此。)

如果使用的是C# 4和.NET 4,最简单的方法是使用动态类型:

代码语言:javascript
复制
public dynamic Addition(dynamic x, dynamic y)
{
    return x + y;
}

对于早期版本,您需要特殊情况某些类型:(

还不清楚您的上下文是什么,但您可能会发现Marc的article on generic operators很有趣。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11155444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档