Я просматривал какой-то старый код, где я встретил несколько пользовательских делегатов, которые используются следующим образом:
private delegate void ListenDelegate(UdpClient listener, bool multicast);
private void ListenOn(UdpClient listener, bool multicast)
{
new ListenDelegate(_ListenLoop).BeginInvoke(listener, multicast, null, null);
}
С некоторыми из новых версий .NET Framework вы можете делать следующее:
private void ListenOn(UdpClient listener, bool multicast)
{
new Action<UdpClient, bool>(_ListenLoop).BeginInvoke(listener, multicast, null, null);
}
Это должно быть точно так же. Есть ли смысл определять своих собственных делегатов, когда общие делегаты, кажется, выполняют ту же работу с меньшим пространством? Или я что-то упустил из-за дженериков, которые делают их не эквивалентными?