Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Наследование абстрактных (MustInherit) UserControl Добавлено: 21.12.07 17:13  

Автор вопроса:  Shota
B]Ситуация:[
Нужно создать группу UserControl-ов которые имеют в основном общее поведение, но кое в чем отличаются.
Если создать базовый класс BaseControl наследующий от UserControl и унаследовать от него ChildControl то все работает, как только я определяю BaseClass как MustInherit ( abstract ) DesignView умирает...
Вопрос:
Как унаследовать абстрактный класс, чтоб при этом сохранить возможность проэктировать контрол в режиме Конструктора?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #1
Добавлено: 21.12.07 23:43
Shota, дело в том, что абтрактный класс не может иметь своих экземпляров. А следовательно проектировать что-то в режиме конструктора в нем нельзя. Потому что у него просто напросто нет его.

Пожалуйста, разъясните свою проблему более широко

Ответить

Номер ответа: 2
Автор ответа:
 Shota



Вопросов: 22
Ответов: 52
 Профиль | | #2 Добавлено: 24.12.07 09:39
Пожалуйста, разъясните свою проблему более широко


Мой проект на C#, поетому пишу в терминах C# ( я думаю смысл не меняется )
На основании текстового описания контролов создается интерфейс. Контролы нескольких видов.
У всех контролов есть свойства:
Caption
Value
ReadOnly
Required
....

Где реализация Caption у всех одинаковая, а остальные свойства для каждого контрола свои. Поэтому я написал базовый класс BaseControl, где реализовал свойства Caption, а остальные свойства объявил как abstract. таким образом и сам базовый класс должен стать abstract........
Вот тут то и загвоздка....... как только базовый класс становится абстрактным, DesignView у наследников умирает.

Выкрутился я следующим образом:
Реализовал Caption в базовом не абстрактном классе
Объявил интерфейс со всеми вышеперечисленными свойствами
Все наследники наследуются из BaseControl и реализуют интерфейс IMyControl.........

Просто остается возможность создать экземпляр BaseControl, что в принципе не имеет смысла.

Ответить

Номер ответа: 3
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #3
Добавлено: 24.12.07 19:49
Реализовал Caption в базовом не абстрактном классе
Объявил интерфейс со всеми вышеперечисленными свойствами
Все наследники наследуются из BaseControl и реализуют интерфейс IMyControl.........
достойное решение

Просто остается возможность создать экземпляр BaseControl, что в принципе не имеет смысла.
чтобы это не было бельмом в глазу, можно сделать закрытый конструктор

Ответить

Номер ответа: 4
Автор ответа:
 Shota



Вопросов: 22
Ответов: 52
 Профиль | | #4 Добавлено: 25.12.07 09:28
чтобы это не было бельмом в глазу, можно сделать закрытый конструктор


Так и сделаю........ спасибо.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам