Что символ + = вызывается при добавлении нескольких делегатов к объекту делегата? - PullRequest
0 голосов
/ 19 августа 2010
public delegate void ExecuteCallback();

класс Палач { private ExecuteCallback _doExecute;

public void AddMultiple()
{
    // Add a delegate to MethodA
    // This will work even if _doExecute is currently null
    _doExecute += new Execute( MethodA );

    // Add a delegate to MethodB also
    _doExecute += new Execute( MethodB );

    // Add a delegate to MethodC also
    _doExecute += new Execute( MethodC );
}

public void MethodA()
{
    //...
}

public void MethodB()
{
    //...
}

public void MethodC()
{
    //...
}

}

Ответы [ 3 ]

2 голосов
/ 19 августа 2010

+= обычно называют «оператором сложения», но в контексте делегатов ...

Оператор + = также используется для указания метода, который будет вызываться в ответна событие;такие методы называются обработчиками событий.Использование оператора + = в этом контексте называется подпиской на событие.

Взято из документации MSDN здесь .

Какподписаться на события и отписаться от них

2 голосов
/ 19 августа 2010

Это просто сокращение, предоставляемое C # для вызова Delegate.Combine.Он также работает для событий, где он вызывает часть события, относящуюся к подписке (например, блок add {} в объявлении события C #).

Я не верю, что есть конкретное имя для комбинации - этотолько двоичные операторы + и + = из разделов 7.8.4 и 7.17.2 спецификации C # соответственно.

0 голосов
/ 19 августа 2010

Вероятно, я бы назвал это «регистрацией» обработчика события с делегатом / событием.В зависимости от контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...