Я прочитал ниже заявление, в книге «C# в двух словах» Джозеф Albahari:Семантика движущие разрешенные абстрактные элементы в интерфейсе против абстрактного класса
интерфейс может содержать только методы, свойства, события и индексаторы, которые не совпадают - это как раз те члены класса, которые могут быть абстрактными.
Дело, которое заставило меня думать, почему автор говорит, что это происходит так , не случайно, который я думаю, что это не так. Я думаю, что это тот же фактор, который стимулирует эту возможность в обоих случаях.
Вот как я смотрю на это. Насколько я знаю, только следующие элементы могут быть объявлены как абстрактные в C#:
- A Метод
- A собственности
- индексатор
- Событие
Теперь над четырьмя вещами может, конечно, присутствовать в абстрактном классе, а также в интерфейсе. Таким образом, этот факт является ключевым драйвером того, что все может быть абстрактным внутри объекта, будь то класс или интерфейс.
Теперь кажется, что автор думает о чем-то другим, то есть контейнеры (абстрактный класс или интерфейс) являются движущим фактором для того, что они могут содержать, и это просто происходит не по совпадению, что в конечном итоге возможно появление абстрактных членов в этих двух местах оказывается одинаковым после завершения разработки компилятора.
Я хочу знать, знает ли кто-либо о различной внутренней семантике, которая управляет разрешенными абстрактными членами внутри интерфейса и абстрактным классом. То, как я смотрю на это, состоит в том, что только четыре типа элементов могут быть абстрактными, поэтому один и тот же факт должен стимулировать его возможность существования в контейнере, который может быть интерфейсом или абстрактным классом.
'... и это просто происходит не по совпадению, что в конце концов, те абстрактные члены, которые возможны в этих двух местах, оказываются одинаковыми после того, как их проект компилятора был завершен. 'Я думаю, вы смешиваете значение *, не совпадающее * с * по совпадению *, - они имеют противоположные значения. Автор говорит, что именно * не * совпадение состоит в том, что интерфейсы могут содержать только те элементы, которые могут быть абстрактными в классе ... который, я думаю, также является тем, что вы говорите. –