2012-01-16 3 views
1

Возможно ли наследовать от двух классов в VB.net?VB.net Наследует 2 класса

Мы разрабатываем пользовательские элементы управления пользователями, которые наследуют, например, System.Web.UI.WebControls.Label. Мы планируем внедрить кучу этих элементов управления, но они будут в основном использовать те же самые дополнительные свойства. Мы надеемся на централизацию этих свойств.

Я изучил интерфейсы, но кажется, что они только «контрактные» свойства, которые вам нужно реализовать.

Мысли?

+0

Рассмотрите возможность использования [композиции] (http://en.wikipedia.org/wiki/Object_composition) вместо http://stackoverflow.com/a/178368/284240 –

ответ

2

Нет. Типы VB.net не могут наследовать более одного класса. Можно реализовать бесконечное количество интерфейсов, но наследование ограничено одним типом.

Примечание: Это не произвольное ограничение VB.Net. На самом деле это ограничение, которое выпекается в CLR. Такие языки, как C++/CLI, обходятся с помощью очень интересных процедур выравнивания типов, но на уровне CLR они используют одиночное наследование.

+0

Спасибо JaredPar - любое предложение о том, как наилучшим образом реализовать эта ситуация? Забудьте централизовать и просто реализовать свойства в каждом? –

+0

@ timmah.faase Я бы поставил общую функциональность в один класс, а затем у пользователей просто было поле этого типа и использовать те же именованные свойства для пересылки в тип поля. И, вероятно, создать интерфейсы для общей функциональности – JaredPar

0

Нет, вы не можете наследовать два класса.

Однако мы столкнулись с точно такой же вопрос, что вы делаете, и решить ее следующим образом:

1) Мы создали интерфейс, который был реализован каждым из элементов управления таким образом, чтобы они могли быть легко обнаружить.

2) Мы создали класс настроек, содержащий параметры и логику, которые были общими для всех классов.

3) Мы добавили свойство интерфейса, созданного в 1, чтобы открыть класс настроек, чтобы мы могли выполнять стандартные действия для всех свойств.

Смежные вопросы