Beim Versuch, einen UdpClient zu entsorgen, habe ich festgestellt, dass es unmöglich ist. Für das folgende:Sollte ein UdpClient entsorgt werden?
UdpClient udpClient = new UdpClient();
udpClient.Dispose();
Visual Studio zeigt einen Fehler:
'System.Net.Sockets.UdpClient.Dispose(bool)' is inaccessible due to its protection level
Dies bedeutet, dass ich von UdpClient
und entlarvt die Dispose
erben sollte (da es scheint der Konsens, dass whatever implements IDisposable should be disposed of zu sein)? Gibt es einen Grund, warum wir die Klasse nicht direkt benutzen sollten? Oder gibt es einfach nach dem Anruf Close
nichts zu entsorgen?
Obwohl eine using
Anweisung funktioniert funktioniert - es ist nicht geeignet, wenn Sie zuhören.
Wenn Sie von ihm erben soll, die construc Die Menschen würden auch geschützt, aber sie sind öffentlich. [Die Dokumentation] (http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.dispose.aspx) ist definitiv irreführend. – ClickRick
@ ClickRick Danke. – ispiro
'geschützter virtueller void UdpClient.Dispose (Boolean)' gibt es seit .NET Framework 2.0, während die parameterlose Überladung 'public void Dispose()' erst seit 4.6 verfügbar ist. Ihr Projekt zielt auf das Framework <4.6, so dass Sie nur die geschützte Methode – twj