我在下面定义了一个类
class SomeType
: IDisposable
{
public void Dispose() { Console.WriteLine("Dispose class"); }
void IDisposable.Dispose() { Console.WriteLine("Dispose interface"); }
}
为什么这段代码会编译?难道我们实际上没有声明两个具有相同签名的相同方法吗?
我在下面定义了一个类
class SomeType
: IDisposable
{
public void Dispose() { Console.WriteLine("Dispose class"); }
void IDisposable.Dispose() { Console.WriteLine("Dispose interface"); }
}
为什么这段代码会编译?难道我们实际上没有声明两个具有相同签名的相同方法吗?
第二种方法是显式接口实现,所以一切都很好。它只会在显式
SomeType转换为时调用IDisposable,而第一个方法将在直接使用时调用SomeType。