Почему Socket.Select (...) принимает IList, а не (также) IList <Socket>? - PullRequest
0 голосов
/ 21 июня 2010

Я реализую некоторый сетевой код, используя шаблон селектора в C # / .NET 3.5. Тем не менее, я был удивлен, обнаружив, что метод Select принимает неуниверсальные IList, а IList<Socket>. В справочной документации ясно сказано, что здесь ожидается список сокетов и ничего больше.

Кто-нибудь знает, почему это так?

Ответы [ 2 ]

2 голосов
/ 21 июня 2010

Из документов :

Поддерживается в: 4, 3,5, 3,0, 2,0, 1,1, 1,0

Это было быдовольно интересная подпись в .NET 1.0 ...

Подпись не может быть изменена без нарушения существующих абонентов.Они могли бы добавить перегрузку, но я не уверен, что это очень помогло бы - если бы вы попытались использовать «новую» перегрузку с неправильными типами аргументов (например, List<string> вместо List<Socket>), это быпросто привязали к старой перегрузке.

2 голосов
/ 21 июня 2010

Socket.Select (который я предполагаю, что вы подразумеваете под Select) - это метод, который уже присутствовал в .NET 1.0, и Microsoft, видимо, никогда не удосужилась обновить его, вероятно, потому что это странный и редко используемый API.

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