![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Stas123 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
Такой вопрос.
возможно ли чтобы объет создовался или не создавался, в зависимости, от того, что передано в его констрктор?
Может быть можно как-то в конструкоре установить объект в null ? |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Нет. Нельзя.
Можно, например, объявить конструктор как private, и для создания объектов использовать статический метод.
Но это не всегда удобно. -------------------- Да. Именно так. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Я так понимаю это условие - условие ошибки. В случае ошибки кидай исключение, это единственный нормальный способ сообщить об ошибке создания объекта.
|
|||
|
||||
| Stas123 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
Дрон, спасибо.
|
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Как по мне вглядит глупостью. Думаю тебе твоё условие лучше проверять не в конструкторе, а ещё до его запуска. Возможно я конечно не прав, но пока не могу придумать случая, где может возникнуть такая потребность.
Всё будет выглядеть гораздо проще, если как то так попробовать
|
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
N1ko, ну, это может понадобиться, когда у тебя сам класс должен определить может он существовать с какими то данными или нет. но на мой взгляд лучше бросить исключение, чем потом по всему коду проверять создался ли объект или там пустая ссылка...
|
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Может быть и так. Видимо я пока в реальной жизни с такими случаями не встречался, что бы входящий параметр конструктора поределял существование того же класса.
|
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 11 Всего: 24 |
N1ko, тут наверное больше вопрос организации кода. к примеру: предположим что у тебя есть класс, который описывает человека -> военнослужащего, соответственно у этого класса должно быть ограничение по возрасту. возьмем условно от 18 до 45. далее вопрос: а кто должен определять и проверять эти границы? если следовать принципу что класс должен сам отвечать за свое состоянии, то вполне логично поместить эту логику в сам класс. в таком случае мы можем быть уверены что если возраст как то измениться и мы поменяем его в класса(в одном месте всей программы) то никто больше на этот параметр не повлияет... конечно всегда возможны варианты и обходные маневры, опять же повторюсь - вопрос организации и проектирования.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |