当试图处理UdpClient时,我发现这是不可能的。对于以下内容:
UdpClient udpClient = new UdpClient();
udpClient.Dispose();
Visual Studio显示错误:
'System.Net.Sockets.UdpClient.Dispose(bool)'由于无法访问 其保护水平
这是否意味着我应该继承UdpClient
并公开Dispose
(因为它似乎是whatever implements IDisposable should be disposed of的共识?有什么理由我们不应该直接使用这个类吗?或者在致电Close
之后没有什么可以解决的?
虽然using
语句确实有效但听不适合。
答案 0 :(得分:7)
不,你不应该。
你应该致电UdpClient.Close
...
在这里查看来源:http://referencesource.microsoft.com/#System/net/System/Net/Sockets/UDPClient.cs#7682e0ea2c48b5cb
您似乎可以调用Close
或((IDisposable)updClient).Dispose
,但API方面我认为调用Close
是UDP客户端的使用方式......
这一切对我来说都没什么意义......