2014-06-19 17 views
5

Khi cố gắng vứt bỏ một UdpClient, tôi thấy rằng điều đó là không thể. Sau:Nên sử dụng UdpClient?

UdpClient udpClient = new UdpClient(); 
udpClient.Dispose(); 

Visual Studio cho thấy một lỗi:

'System.Net.Sockets.UdpClient.Dispose(bool)' is inaccessible due to its protection level

Điều này có nghĩa rằng tôi nên kế thừa từ UdpClient và vạch trần Dispose (Vì nó có vẻ là sự đồng thuận rằng whatever implements IDisposable should be disposed of)? Có lý do nào mà chúng ta không nên trực tiếp sử dụng lớp học không? Hay đơn giản là không có gì để vứt bỏ sau khi gọi Close?

Mặc dù tuyên bố usingkhông hoạt động - không phù hợp khi nghe.

+0

Nếu bạn được cho là thừa hưởng từ nó, cấu trúc tors cũng sẽ được bảo vệ, nhưng chúng được công khai. [Tài liệu] (http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.dispose.aspx) chắc chắn là gây hiểu nhầm. – ClickRick

+0

@ClickRick Cảm ơn. – ispiro

+0

'khoảng trống ảo được bảo vệ UdpClient.Dispose (Boolean)' đã có từ .NET framework 2.0 trong khi quá trình tham số-ít hơn 'public void Dispose()' chỉ có sẵn kể từ 4.6. Dự án của bạn là khung nhắm mục tiêu <4.6, do đó bạn chỉ thấy phương pháp được bảo vệ – twj

Trả lời

7

Không, bạn không nên. bạn nên gọi UdpClient.Close ...


Sau khi xem xét nguồn gốc ở đây: http://referencesource.microsoft.com/#System/net/System/Net/Sockets/UDPClient.cs#7682e0ea2c48b5cb

Có vẻ bạn có thể gọi Close hoặc ((IDisposable)updClient).Dispose nhưng API-khôn ngoan Tôi nghĩ rằng gọi Close là cách client UDP là dự định được sử dụng ...

Tất cả điều này có ý nghĩa rất ít đối với tôi ....

+0

Vì nó có vẻ là sự đồng thuận rằng [bất cứ điều gì thực hiện IDisposable nên được xử lý] (http://stackoverflow.com/questions/2926869/do-you-need -to-dispose-of-objects-và-set-them-to-null) - Bạn có nguồn không? – ispiro

+0

API này hỗ trợ cơ sở hạ tầng .NET Framework và không được sử dụng trực tiếp từ mã của bạn. http://msdn.microsoft.com/en-us/library/bb360027.aspx –

+0

@ispiro về cơ bản nó là lỗi thiết kế .Net 1.1 –

Các vấn đề liên quan