Реализация нескольких методов интерфейса класса-C # - PullRequest
24 голосов
/ 27 апреля 2010

Возможно ли в C # иметь класс, который реализует интерфейс, у которого объявлено 10 методов, но реализует только 5 методов, т.е. определяя только 5 методов этого интерфейса ??? На самом деле у меня есть интерфейс, который реализуется 3 класса, и не все методы используются всеми классами, так что если я мог бы исключить какой-либо метод ???

Мне нужно это. Это может звучать как плохой дизайн, но это не надеюсь. Дело в том, что у меня есть коллекция пользовательских элементов управления, которые должны иметь общее свойство, и исходя из этого, только я отображаю их во время выполнения. Поскольку это динамично, мне нужно управлять ими для этого, у меня есть Свойства. Некоторые свойства нужны немногим классам и не всем. И по мере увеличения элемента управления эти свойства могут увеличиваться, так что это необходимо для одного элемента управления, который мне нужен во всех без какого-либо использования. только фиктивные методы. Для того же самого я подумал, что если есть способ избежать этих методов в остальной части класса, это было бы здорово. Кажется, что нет другого способа, кроме как иметь абстрактный класс или фиктивные функции: - (

Ответы [ 11 ]

0 голосов
/ 27 апреля 2010

Пусть ваш интерфейс будет реализован в абстрактном классе. Абстрактный класс реализует 5 методов и сохраняет оставшиеся методы как виртуальные. Все ваши 3 класса должны наследоваться от абстрактного класса. Это был ваш клиентский код, который использует 3 класса, не нужно менять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...