C# 是否应处置UdpClient?

C# 是否应处置UdpClient?,c#,.net,resources,dispose,udpclient,C#,.net,Resources,Dispose,Udpclient,在尝试处理UdpClient时,我发现这是不可能的。有关下列事项: UdpClient udpClient = new UdpClient(); udpClient.Dispose(); Visual Studio显示一个错误: “System.Net.Sockets.UdpClient.Dispose(bool)”由于以下原因无法访问: 其保护水平 这是否意味着我应该从UdpClient继承并公开Dispose(因为这似乎是共识)?有什么理由我们不应该直接使用这个类吗?或者在调用Close后

在尝试处理UdpClient时,我发现这是不可能的。有关下列事项:

UdpClient udpClient = new UdpClient();
udpClient.Dispose();
Visual Studio显示一个错误:

“System.Net.Sockets.UdpClient.Dispose(bool)”由于以下原因无法访问: 其保护水平


这是否意味着我应该从
UdpClient
继承并公开
Dispose
(因为这似乎是共识)?有什么理由我们不应该直接使用这个类吗?或者在调用
Close
后,是否没有什么可处理的内容

尽管使用语句的
是有效的,但在听的时候它并不合适。

不,你不应该这样做。 您应该调用
UdpClient.Close


查看此处的来源后:

看起来您可以调用
Close
((IDisposable)updClient)。Dispose
但在API方面,我认为调用
Close
是UDP客户端的使用方式


所有这些对我来说都毫无意义

如果您应该从它继承,那么构造函数也会受到保护,但它们是公共的。显然是误导性的。
受保护的虚拟void UdpClient.Dispose(布尔)
自.NET framework 2.0以来一直存在,而参数less重载
public void Dispose()
仅在4.6之后才可用。您的项目的目标是framework<4.6,因此您只能看到受保护的方法,因为大家一致认为-您有源代码吗?此API支持.NET framework基础结构,不打算直接从您的代码中使用@这基本上是.NET1.1+1的设计缺陷,谢谢。这是一个非常清楚的来源!尽管如此,我承认我现在不理解整个
UdpClient.IDisposable.Dispose
这件事,为什么不提呢。这里可能有两个独立的
Dispose
方法。。。不管怎样-谢谢你的回答。@ispiro看着我不明白的图片“UdpClient.Close”与“UdpClient.IDisposable.Dispose”相同