Re: Опциональное возвращаемое значение
От: Воронков Василий Россия  
Дата: 23.05.09 08:29
Оценка:
Здравствуйте, igna, Вы писали:

I>Иногда результатом работы метода являются два значения, причем первое всегда используется вызывающим кодом, второе — только в некоторых случаях. Это второе значение можно сделать невидимым для кода, которому оно не нужно, поместив оба значения-результата в struct и определив операцию неявного преобразования к типу первого значения:

I>Возражения принимаются.

Ну самое очевидное возражение — как понять, есть ли опциональное значение или нет? Т.е. тут нужен по кр. мере nullable-тип или какой-нибудь флажок.
Потом — бывает ли у метода такая ситуация, что запрашиваемое действие выполнить невозможно? Т.е. и обязательного параметра не будет?

Потом это, конечно, все зависит от прикладной задачи — т.е. насколько необходима именно структура — ну вот мне какой-то такой вариант как-то больше нравится:

public class Result
{
  public Status Status { get; private set; }
}


public sealed class SimpleResult : Result
{
  public int SomeValue { get; }
}


public sealed class ComplexResult : Result
{
  public int SomeValue { get; }
  public int AnotherValue { get; }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.