Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C#: что возвращать вместо null?

12K
19 августа 2007 года
Dipish
33 / / 08.08.2006
Здраствуйте, я только начинаю писать на C# и столкнулся с такой проблемой: у меня есть метод, возвращающий объект определенного типа. Но я мне нужно, чтобы в случае какой-либо ошибки при выполнении этот метод возвращал что-то вроде null вместо объекта. Но это естественно сделать не удается, а возвращать вместо объекта указатель как в С++ нельзя! Помогите пожалуйста новичку разобраться!
355
19 августа 2007 года
<SCORP>
786 / / 21.10.2006
а почему null не получается??? как более правильный вариант -- кидать исключение (throw new SomeExceptio() ), а в вызывающем методе ловить его через try { object.MyMethod() } catch (SomeException) { /*handle exception*/ }
12K
19 августа 2007 года
Dipish
33 / / 08.08.2006
Видимо причина в том что возвращаю не совсем объект, а структуру
 
Код:
struct Item //единица информации: входные и выходные поля
    {
        public int In1;
        public int In2;
        public double Out;

        ...<далее парочка методов>
    }


И не удается реализовать метод другого класса, возвращающий данную структуру:

 
Код:
public Item MyMethod(string line)
        {                        
            Item I;
            if(...)
            {
               return null;
            }
            ...
            return I;
         }

На что естественно компилятор говорит что не удается привести null к типу Item.
Я не различал структуру и класс, но сейчас уже начинаю понимать - надо делать Item классом и проблема уйдет?
Об исключениях тоже думал, но не хочется с ними здесь заморачиваться, задачка несложная...
12K
19 августа 2007 года
Dipish
33 / / 08.08.2006
Сменил struct на class, заработало как надо. Мда, оказывается в C# структуры и классы разные вещи...
Struct это Value Type, поэтому и не получалось с null... Все понял.
350
20 августа 2007 года
cheburator
589 / / 01.06.2006
В С++, как и С#, обработка исключительных ситуаций (разнообразных ошибок, в том числе) происходит при помощи try/catch блоков.
713
20 августа 2007 года
Ap0k
360 / / 13.03.2006
RTFM Nullable Generic Structure. Nullable data types review
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог