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ố using
không hoạt động - không phù hợp khi nghe.
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
@ClickRick Cảm ơn. – ispiro
'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