我使用的是FtpWebResponse类,但没有看到Dispose方法. 事实证明,该类实现了IDisposable,但是明确地这样做,因此在调用Dispose之前必须先将实例强制转换为IDisposable:
// response is an instance of FtpWebResposne
((IDisposable) response).Dispose();
Run Code Online (Sandbox Code Playgroud)
为什么像这样的类的设计者会选择明确地实现IDisposable?正如Anthony Pegram所说,以这种方式做事掩盖了这样一个事实,即对象应该为每次使用课程时都没有查阅文档的普通开发人员处理.
我使用接口来解耦我的代码.我很好奇,是否使用显式接口实现隐藏功能?
例:
public class MyClass : IInterface
{
void IInterface.NoneWillCall(int ragh) { }
}
Run Code Online (Sandbox Code Playgroud)
只有通过界面明确提供此功能有什么好处和具体用例?