struct Item //единица информации: входные и выходные поля
{
public int In1;
public int In2;
public double Out;
...<далее парочка методов>
}
C#: что возвращать вместо null?
Здраствуйте, я только начинаю писать на C# и столкнулся с такой проблемой: у меня есть метод, возвращающий объект определенного типа. Но я мне нужно, чтобы в случае какой-либо ошибки при выполнении этот метод возвращал что-то вроде null вместо объекта. Но это естественно сделать не удается, а возвращать вместо объекта указатель как в С++ нельзя! Помогите пожалуйста новичку разобраться!
а почему null не получается??? как более правильный вариант -- кидать исключение (throw new SomeExceptio() ), а в вызывающем методе ловить его через try { object.MyMethod() } catch (SomeException) { /*handle exception*/ }
Код:
И не удается реализовать метод другого класса, возвращающий данную структуру:
Код:
public Item MyMethod(string line)
{
Item I;
if(...)
{
return null;
}
...
return I;
}
{
Item I;
if(...)
{
return null;
}
...
return I;
}
На что естественно компилятор говорит что не удается привести null к типу Item.
Я не различал структуру и класс, но сейчас уже начинаю понимать - надо делать Item классом и проблема уйдет?
Об исключениях тоже думал, но не хочется с ними здесь заморачиваться, задачка несложная...
Struct это Value Type, поэтому и не получалось с null... Все понял.
В С++, как и С#, обработка исключительных ситуаций (разнообразных ошибок, в том числе) происходит при помощи try/catch блоков.