2014-09-30 19 views
2

Для AsyncSocketЧто такое Callback vs new AsyncCallback (Callback)?

// accept 
... 
listener.BeginAccept(new AsyncCallback(AcceptCallback), listener); 
// listener.BeginAccept(AcceptCallback, listener); 
... 

public void AcceptCallback(IAsyncResult ar) 
{ 
... 
} 

// recieve 
... 
socket.BeginReceive(buffer, offset, length, 0, new AsyncCallback(ReadCallback), asyncSocket); 
// socket.BeginReceive(buffer, offset, length, 0, ReadCallback, asyncSocket); 
... 

public void ReadCallback(IAsyncResult ar) 
{ 
... 
} 

Мы можем использовать только обратный вызов вместо нового AsyncCallback (обратный вызов)

Чем отличается просто обратный вызов против нового AsyncCallback (обратный вызов)?

ответ

2

Они одинаковы. «Новое» ключевое слово было необходимо в более старых версиях компилятора. Более новая версия компилятора может вывести делегата. Один и тот же код генерируется в любом случае.

+1

Спасибо. Ваш ответ - это то, что я хочу. – user2523112

+0

@ user2523112 - кроме того, большая часть Visual Studio «сгенерированного» кода по-прежнему использует синтаксис «нового» ключевого слова. Таким образом, вы все еще видите это в файлах .Designer.cs и т. П. –

2

Что отличает только Callback vs new AsyncCallback (Callback)?

Его название Delegate Inference. Первый позволяет компилятору вывести тип делегата, последний явно заявляет об этом.

+0

Спасибо за ответ. – user2523112