我只是浏览了“深度中的C#”并偶然发现了以下代码:
Func<string> stringFunc = () => "";
Func<object> objectFunc = () => new object();
Func<object> combined = objectFunc + stringFunc;
我很确定在数学中添加两个函数毫无意义,那么为什么任何程序员都希望函数的二进制operator+
重载?这似乎是为什么重载运算符可以造成伤害的一个完美的例子(我通常支持运算符重载的想法)。
在C#中添加两个函数意味着什么? (我是C#noob,所以请耐心等待。)
你是否同意在这里重载operator+
是一个设计错误?
在operator+
这里做什么是更好的语法?
答案 0 :(得分:3)
写delegate1 + delegate2
将创建第三个委托实例,它结合前两个,调用两个代理中的所有函数。
它主要用于活动。
答案 1 :(得分:2)
在数学中添加两个函数非常有意义。当您认为函数是运算符时,所有这些运算符的空间都是线性空间(在某些条件下)。这是一个非常富有成效的观点,可以产生许多有用的数学见解。
当然,这不是这里发生的事情,但我想把你放在问题的数学方面!