Прежде всего, ваш вопрос: «в состоянии определить класс-реализации в интерфейсе Вы? "
Ответ на этот вопрос: «в пути/нет».
Вы не можете включать определения классов «внутри» определение интерфейса, если это то, что вы имеете в виду.
Как упоминалось ранее, реализация такой вещи может произойти через свойства интерфейса.
Возможно, вы не должны пытаться реализовать описанную структуру интерфейса, если не существуют классы, которые функциональность реализующего кода полностью зависит от интерфейса, и если интерфейс уже глубоко интегрирован в несколько существующих модулей. Это само по себе является недостатком дизайна и может быть заменен абстрактной реализацией класса.
CLR не поддерживает множественное наследование, но он позволяет типам реализовывать один или несколько интерфейсов в дополнение к наследованию от базового класса.Поэтому интерфейсы часто используются для достижения эффекта множественного наследования.
Требование классов, наследуемых от одного базового класса, в большинстве случаев делает иерархию классов слишком негибкой. Чтобы использовать базовый класс внутри для упрощения развития библиотеки, публичные члены должны делегировать работу базовому классу, а не наследовать его. тщательно выбирать между абстрактным классом и интерфейсом при проектировании абстракции, как он может вести себя как интерфейс в том, что он может определить пользователь, и может предоставить детали реализации, но не обязаны делать так, и может добавлять элементы по мере необходимости поддерживать дополнительные функциональные возможности ...
Таким образом, если используется так, как вы хотите, он отходит от концепции C# интерфейсов, но, может быть, кажется, ближе имитировать несколько модель наследования языков, таких как C++ на практике, поскольку он неявно «заставляет всех разработчиков вашего интерфейса создавать экземпляр каждого класса, который имеет интерфейс d свойства для.
Вам нужно немного подумать о причине создания такой структуры (необходимо заставить всех разработчиков интерфейса также создавать экземпляры классов, которые интерфейс определяет как свойства).
Скорее всего, это недостаток дизайна в коде, чем недостающая языковая функция.
Так что даже если это возможно, обходной путь, я бы не назвал это хорошим способом дизайнерских вещей ...
@roosteronacid: Является ли это вашей Предпочтительнее ОТВЕТ? – cseder