![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Bogdan1024 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
Как можно промаркировать конструкторы класса A, чтобы потом можно было писать такое:
И при этом не указывать конструктор в классе B с такой же сигнатурой. Всмысле, не писать такое:
Ибо конструкторов у класса A может быть миллион, и наследников от А может быть миллион... -------------------- ![]() |
||||||
|
|||||||
Jlekc |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 520 Регистрация: 10.2.2005 Где: Leopolis Репутация: 1 Всего: 4 |
Ощибка в построении архитектуры.
При нормальном построении таких вопросов не возникает -------------------- |
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
ну.. гхм... насколько я понимаю такого сделать не получится... т.к. конструктор - это метод, описывающий элемент ДАННОГО типа. т.е. считается что для другого типа он должен быть иным, но никто тебе не мешает описать этот механизм с помощью дополнительного набора public методов родительского класса. Или же описать какую то логику в пропертях.
может я ошибаюсь и все же есть какой то свпособ??? |
|||
|
||||
Jlekc |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 520 Регистрация: 10.2.2005 Где: Leopolis Репутация: 1 Всего: 4 |
Кстати, как понимаю просто не хочеться при наследовании описывать конструкторы базового класа.
Попробуй поставь ReSharper. В нем много подсказок и автозаполнений кода, возможно и это он сделает сам. -------------------- |
|||
|
||||
tol05 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
Bogdan1024, возникает вопрос: знаешь ли ты зачем вообще конструкторы нужны и как они работают? Как конструктор класса А может гарантировано инициализировать объекты всех своих классов-потомков, которые, может быть, будут созданы через сотни лет? Потомки напишут класс и крикнут: "ты гляди, еще на .Net 2.0 написали класс, а он до сих пор наши инстансы создает!!!" Вах!!!
вряд ли... Это сообщение отредактировал(а) tol05 - 18.9.2007, 20:09 -------------------- На хорошей работе и сны хорошие снятся. |
||||||
|
|||||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
вопрос тут всё же о другом автору просто хочет найти возможность избежать написания параметризированных конструкторов унаследованных классов, дублирующих по сигнатуре один из базовых конструкторов и ничего, кроме "вызова" base(parameter), не делающих... |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
не я C# придумал, но понять разработчиков могу... Я вот, например, так "хочу"
Как компилятор без явных вызовов базовых конструкторов отличит мой вариант от варианта Bogdan1024? Это сообщение отредактировал(а) tol05 - 18.9.2007, 21:25 -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
altarvic |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 2.3.2007 Репутация: 1 Всего: 1 |
Так не подойдет?
Да, написал не подумавши. Такое не прокатит Это сообщение отредактировал(а) altarvic - 19.9.2007, 07:02 |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 2 Всего: 25 |
не уверен, что понял до конца идею, но вопрос вдогонку:
а что, если 10000 из того миллиона наследников не должны будут вызывать конструктор A? |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
проблемы будут и с закрытием для пользователя наследников расширенных конструкторов базового класса (часто, например, базовый абстрактный класс имеет конструкторы, которые в наследниках вызывать, так скажем, не стоит)
|
|||
|
||||
Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
Значит, не получится так. Жаль.
-------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |