Есть ли способ показать, что делает конкретный пользовательский перегруженный оператор? - PullRequest
0 голосов
/ 23 мая 2018

Есть ли способ передать эквивалент сводки метода перегруженному оператору?

т.е. у меня есть следующий объект с перегруженным оператором + и пользовательским методом:

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; 

Если этот объект находился в библиотеке, и я использовал его, я мог навести курсор мыши на пользовательский метод, чтобы увидеть сводку, написанную создателем, чтобы увидеть, что делает метод.Есть ли похожий способ увидеть эффект перегруженного оператора?

В этом примере вы не знаете, что он будет делать со значением или строкой.Сумма и Добавить?Макс и заменить?Умножить и игнорировать?

1 Ответ

0 голосов
/ 23 мая 2018

Рассмотрим следующий код, который демонстрирует использование тега /// <summary></summary>:

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;
    }
}

Если вы наведите курсор мыши на + в строке Test c = a + b;, всплывающая подсказка скажет:

Возвращает новый тест с X, установленным на сумму lhs.X и rhs.X

(я уверен, что для этого должен быть повторяющийся вопрос, но у меня былпоиск, и я не смог найти специфический для перегрузок операторов.)

...