C# 是否有任何方法可以显示特定的自定义重载运算符的作用?

C# 是否有任何方法可以显示特定的自定义重载运算符的作用?,c#,overloading,summarization,C#,Overloading,Summarization,有没有办法给重载运算符提供方法摘要的等价物 i、 e.我有一个带有重载+运算符和自定义方法的以下对象: CustomObject objectA = new CustomObject(); CustomObject objectB = new CustomObject(); objectA.MyInt = 10; objectA.MyString = "hello"; objectB.MyInt = 55; objectB.MyString = "apple"; objectA.Cust

有没有办法给重载运算符提供方法摘要的等价物

i、 e.我有一个带有重载+运算符和自定义方法的以下对象:

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; 
如果这个对象在库中并且我正在使用它,我可以将鼠标悬停在自定义方法上,查看创建者编写的摘要,以查看该方法的功能。是否有类似的方法来查看重载运算符的效果


在本例中,您不知道它将如何处理值或字符串。求和并附加?Max和Replace?乘法和忽略?

考虑下面的代码,它演示了
//
标记的用法:

public class Test
{
    /// <summary>Returns a new Test with X set to the sum of lhs.X and rhs.X</summary>
    public static Test operator+ (Test lhs, Test rhs)
    {
        return new Test {X = lhs.X + rhs.X};
    }

    public int X;
}

class Program
{
    public static void Main()
    {
        Test a = new Test {X = 1};
        Test b = new Test {X = 2};
        Test c = a + b;
    }
}
公共类测试
{
///返回一个新测试,其中X设置为lhs.X和rhs.X之和
公共静态测试操作员+(测试左侧、测试右侧)
{
返回新的测试{X=lhs.X+rhs.X};
}
公共int X;
}
班级计划
{
公共静态void Main()
{
测试a=新测试{X=1};
测试b=新测试{X=2};
试验c=a+b;
}
}
如果将鼠标悬停在
测试c=a+b行中的
+
,工具提示将显示:

返回一个新测试,其中X设置为lhs.X和rhs.X之和


(我确信应该有一个重复的问题,但我进行了搜索,没有找到一个特定于运算符重载的问题。)

考虑下面的代码,它演示了
//
标记的使用:

public class Test
{
    /// <summary>Returns a new Test with X set to the sum of lhs.X and rhs.X</summary>
    public static Test operator+ (Test lhs, Test rhs)
    {
        return new Test {X = lhs.X + rhs.X};
    }

    public int X;
}

class Program
{
    public static void Main()
    {
        Test a = new Test {X = 1};
        Test b = new Test {X = 2};
        Test c = a + b;
    }
}
公共类测试
{
///返回一个新测试,其中X设置为lhs.X和rhs.X之和
公共静态测试操作员+(测试左侧、测试右侧)
{
返回新的测试{X=lhs.X+rhs.X};
}
公共int X;
}
班级计划
{
公共静态void Main()
{
测试a=新测试{X=1};
测试b=新测试{X=2};
试验c=a+b;
}
}
如果将鼠标悬停在
测试c=a+b行中的
+
,工具提示将显示:

返回一个新测试,其中X设置为lhs.X和rhs.X之和


(我确信应该有一个重复的问题,但我进行了搜索,找不到一个特定于运算符重载的问题。)

在方法上方插入(键入)
//
,它将添加摘要块(如果您使用的是Visual Studio)。此注释不是为了回答问题,但是要提出一个观点:如果从上下文中不能绝对清楚重载运算符的作用,那么就不要重载运算符。人们脑子里想的是,他们希望在客户加产品等于采购订单的情况下产生“可爱”的重载,这会产生无法理解的代码。重载
+
用于复数、向量和其他具有明确定义的加法运算符的数学对象。@EricLippert是的,这更方便。一个方法需要给出一个成功或失败的消息,还需要从异常中传回任何错误消息。本例中的类是一个结果类,需要将多个数据库存储结果添加到一起。本质上,如果添加的任何结果为false,那么它需要为false,但也要连接任何返回的错误消息。基本上重载操作员只是意味着写管理器的人不需要对数据库的每次调用进行这些检查。我将考虑重载操作的总和,意思是“在错误缓冲区中累积错误信息”,这是C语言中一个非常糟糕的编程实践。听起来你在试图重新发明错误monad;为什么不直接使用错误monad呢?或者,只需使用
任务
,因为它是错误monad行为的超集。在方法上方插入(键入)
/
,它将添加摘要块(如果您使用的是Visual Studio)。此注释不是为了回答问题,但是要提出一个观点:如果从上下文中不能绝对清楚重载运算符的作用,那么就不要重载运算符。人们脑子里想的是,他们希望在客户加产品等于采购订单的情况下产生“可爱”的重载,这会产生无法理解的代码。重载
+
用于复数、向量和其他具有明确定义的加法运算符的数学对象。@EricLippert是的,这更方便。一个方法需要给出一个成功或失败的消息,还需要从异常中传回任何错误消息。本例中的类是一个结果类,需要将多个数据库存储结果添加到一起。本质上,如果添加的任何结果为false,那么它需要为false,但也要连接任何返回的错误消息。基本上重载操作员只是意味着写管理器的人不需要对数据库的每次调用进行这些检查。我将考虑重载操作的总和,意思是“在错误缓冲区中累积错误信息”,这是C语言中一个非常糟糕的编程实践。听起来你在试图重新发明错误monad;为什么不直接使用错误monad呢?或者对于这个问题,只需使用
任务
,因为它是错误monad行为的超集。谢谢。我试过总结,但似乎不起作用。我很可能在错误的部分徘徊,因为它看起来确实工作得很好。非常感谢。非常感谢。我试过总结,但似乎不起作用。我很可能在错误的部分徘徊,因为它看起来确实工作得很好。非常感谢。