powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# откатить создание класса
4 сообщений из 4, страница 1 из 1
c# откатить создание класса
    #38513485
Фотография essbase.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пж.
как в конструктуре откатить создание класса.
т.е. если в результате разбора переданных параметров я принял решение, что класс мне не нужен, то можно ли вернуть null или что-то в этом вроде ?

ЕР
...
Рейтинг: 0 / 0
c# откатить создание класса
    #38513517
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
private Foo CreteFoo(int a, string b, float c)
{
    if(a == -1) return null;
    return new Foo(a, b c);
}
...
Рейтинг: 0 / 0
c# откатить создание класса
    #38513522
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
essbase.ru,

Разве что исключение выбросить, но мне это не кажется хорошей затеей. Что мешает в коде вызова удостовериться, нужен ли вам объект? Если много мест - то, например, просить объект у фабрики, а в ней проверять, нужен ли он.
...
Рейтинг: 0 / 0
c# откатить создание класса
    #38513619
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
essbase.ru, конструктор не может отменить создание экземпляра класса, но может сгенерировать исключение. Однако память уже будет выделена и сборщик мусора должен будет ее освободить. Кроме того исключение нужно обрабатывать, что может оказаться неудобным. Возможно тебе стоит создать класс с private конструктором и public методом для создания экземпляра.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
class Example
{
    private Example() { }
    public static Example CreateInstance(...)
    {
         if (...) return null; // Не создаем экземпляр
         return new Example();
    }
}
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# откатить создание класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]