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