我是一名第三方API dll的用户,使用的是彭博SAPI。以下是我的问题:
上述内容来自VS2010中的F12 /转到定义/对象浏览器。现在,当我尝试使用以下代码时:
[ComVisible(true)]
public interface IDisposable
{ //this is from mscorlib 2.0.0.0 - standard System.IDisposable
void Dispose();
}
public abstract class AbstractSession : IDisposable {}//method signatures and comments
public class Session : AbstractSession {} //method signatures and comments (from assembly metadata)
上述内容来自VS2010中的F12 /转到定义/对象浏览器。现在,当我尝试使用以下代码时:
(new Session()).Dispose();
这段代码无法编译...标准编译器错误-找不到定义/扩展方法'Dispose'。
这怎么可能?他们制作了一个程序集并明确编辑了它的元数据吗?
我不知道在法律上是否可以隐藏(排除)公共方法....
IEnumerable<T>
时;因为它派生自非泛型的IEnumerable
,所以你必须实现两个版本的 GetEnumerator,并且它们可能会互相干扰。因此,最佳实践是显式实现非泛型方法,这样只有在将集合视为非泛型时才调用它。 - KeithS