【发布时间】:2011-03-06 08:52:14
【问题描述】:
我正在使用 C# / .NET 3.5 中的选择器模式实现一些网络代码。然而,我惊讶地发现Select 方法采用非泛型IList 而不是IList<Socket>。它在帮助文档中清楚地说明了这里需要一个套接字列表而不是其他任何东西。
有人知道为什么会这样吗?
【问题讨论】:
标签: c# .net sockets css-selectors
我正在使用 C# / .NET 3.5 中的选择器模式实现一些网络代码。然而,我惊讶地发现Select 方法采用非泛型IList 而不是IList<Socket>。它在帮助文档中清楚地说明了这里需要一个套接字列表而不是其他任何东西。
有人知道为什么会这样吗?
【问题讨论】:
标签: c# .net sockets css-selectors
Socket.Select(我假设您的意思是 Select)是 .NET 1.0 中已经存在的一种方法,微软显然从未费心更新它,可能是因为它是一个古怪且很少使用的 API。
【讨论】:
ObsoleteAttribute装饰原函数。
来自the docs:
支持:4、3.5、3.0、2.0、1.1、1.0
这在 .NET 1.0 中会是一个非常有趣的签名...
在不破坏现有调用者的情况下无法更改签名。他们本可以添加一个重载,但我不确定它是否会有很大帮助 - 如果您尝试使用带有错误参数类型的“新”重载(例如 List<string> 而不是 List<Socket>)它会只是绑定到旧的重载。
【讨论】: