Set*_*zzi 3 .net c# webresponse httpwebresponse
通过最近涉及WebResponse的一些代码调试后,我发现我遇到的问题是我在发出另一个之前没有正确处理WebResponse.因为WebResponse需要被转换为IDisposable以便实际调用dispose(或者你可以使用"using"来实现相同的目标),所以我误入歧途.
所以我的问题是:
1)Microsoft用什么来实现这一目标?
IDisposable是一个接口,因此是公共的,但WebResponse以某种方式改变了根据MSDN doumentation保护的访问修饰符.我认为这是不可能的.
2)以这种方式隐藏处置有什么好处?
为什么不让webResponse.Dispose()有效?
显式接口实现:
public class Foo : IDisposable {
void IDisposable.Dispose() { /* code here */ }
}
Run Code Online (Sandbox Code Playgroud)
这可以使用任何接口方法完成.该usingAPI知道使用IDisposable实施.
请注意,此功能不应过度使用; 以下内容会令人困惑,例如:
public class Foo : IDisposable {
void IDisposable.Dispose() { /* do something */ }
public void Dispose() { /* do something completely different */ }
}
Run Code Online (Sandbox Code Playgroud)