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