Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > как возвратить из метода неск-ко параметров


Автор: -ser- 2.5.2005, 05:55
Как возвратить из метода более одного значения. Через структуру?

Автор: mr.DUDA 2.5.2005, 07:19
Используя модификатор out в типе аргумента метода, можно возвратить сколько нужно значений:
Код
// Аргументы inA, inB - входные, а outX и outY - выходные
public void DoSome(int inA, out string outX, out double outY, int inB)
{
    outX = "result X";
    outY = 123;
}

Автор: Domestic Cat 2.5.2005, 07:33
Цитата(mr @ 1.5.2005, 22:19)
public void DoSome(int inA, out string outX, out double outY, int inB)
{
    outX = "result X";
    outY = 123;
}


Это если до этого все out переменные объявлены но им не присвоены значения. Если же все out заменить на ref это ограничение снимается.

Автор: arilou 2.5.2005, 10:37
Offtop:

Цитата(ser @ 2.5.2005, 05:55)
Через структуру?

Для общего развития, корифеи от программирования говорят, что если требуется вернуть более одного значения из функции (т.е. первое значение - это результат её выполнения), то что-то с ней не то smile

Автор: Дрон 2.5.2005, 11:55
Цитата(Domestic @ 2.5.2005, 08:33)
Это если до этого все out переменные объявлены но им не присвоены значения. Если же все out заменить на ref это ограничение снимается.

Что-то ты путаешь.
Для переменных передаваемых в out как раз не важно присвоено им значение или нет.
А вот передаваемые по ref должны быть инициализированы.
Добавлено @ 11:57
arilou
Ну это не обязательно...

По такой логике, наверно, больше половины WinAPI функций можно считать кривыми. А уж в C# метод, возвращающий класс (структуру), -- вообще нормальное явление smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)