【发布时间】:2018-05-23 13:20:30
【问题描述】:
有没有办法给重载的操作符提供一个等效的方法摘要?
即我有以下带有重载 + 运算符和自定义方法的对象:
CustomObject objectA = new CustomObject();
CustomObject objectB = new CustomObject();
objectA.MyInt = 10;
objectA.MyString = "hello";
objectB.MyInt = 55;
objectB.MyString = "apple";
objectA.CustomMethod(34);
objectA += objectB;
如果此对象在库中并且我正在使用它,我可以将鼠标悬停在自定义方法上以查看创建者编写的摘要,以了解该方法的作用。有没有类似的方法可以看到重载运算符的效果?
在此示例中,您不知道它将对值或字符串做什么。求和并追加?最大和替换?乘以忽略?
【问题讨论】:
-
在您的方法上方插入(类型)
///,它将添加摘要块(如果您使用的是 Visual Studio)。 -
此评论不是为了回答问题,而是提供一个意见:如果从上下文中不能完全清楚重载运算符的作用,则不要重载运算符 .人们会想到,他们想要制作“可爱”的重载,其中 Customer 加 Product 等于 PurchaseOrder 并且它会生成无法理解的代码。重载
+用于复数、向量和其他具有明确定义的加法运算符的数学对象。 -
@EricLippert 是的,这是为了方便。方法需要给出成功或失败,并且还需要从异常中传回任何错误消息。本例中的类是一个Result类,需要将多个数据库存储结果加在一起。本质上,如果任何添加的结果为假但也连接任何返回的错误消息,则它需要为假。本质上重载运算符只是意味着编写管理器的人不需要为每次调用数据库进行这些检查。
-
我认为重载求和操作意味着“在错误缓冲区中累积错误信息”在 C# 中是一种非常糟糕的编程实践。听起来您正在尝试重新发明错误单子;为什么不只使用错误单子?或者就此而言,只需使用
Task<T>,因为它是错误单子行为的超集。
标签: c# overloading summarization