У меня имеется класс, определенный ниже
class SomeType
: IDisposable
{
public void Dispose() { Console.WriteLine("Dispose class"); }
void IDisposable.Dispose() { Console.WriteLine("Dispose interface"); }
}
Почему этот код компилируется? Разве у нас фактически не объявлено два одинаковых метода с одинаковой сигнатурой?
Ответ
Второй метод является явной реализацией интерфейса, так что все нормально. Он будет вызван только при явном приведении типа SomeType к IDisposable, тогда как первый метод будет вызываться при работе напрямую с SomeType
Комментариев нет:
Отправить комментарий