Страницы

Поиск по вопросам

четверг, 28 ноября 2019 г.

Как вернуть несколько значений из функции в C#

#c_sharp #c_sharp_faq


Как вернуть несколько значений из функции в C#    


Ответы

Ответ 1



В версиях C# c 4 по 6 включительно, лучшими вариантами вернуть из функции(метода вернее), являлись возвращение кортежа Tuple<> или создание класса\структуры с нужными свойствами. Вариант с out-параметрами, хуже, т.к. немного выбивается из основных парадигм применяемых при разработке на C#, и был встроен скорее для поддержки импорта нативных функций. На сегодняшний день (C#7) удобной и достаточно качественной альтернативой является использование кортежей поддерживаемых на уровне синтаксиса языка при помощи значимого типа ValueTuple (Правда требуется добавлять библиотеку System.ValueTuple, например через NuGet). возвращение кортежа Tuple<> public Tuple GetVasya() { return Tuple.Create("Вася", 16); } создание класса class Person { public string Name {get;set;} public int Age {get;set;} } ... public Person GetVasya() { return new Person { Name = "Вася", Age = 16 }; } использование ValueTuple public (string Name, int Age) GetVasya() { return ("Вася", 16); }

Ответ 2



Для того чтобы вернуть несколько значений из функции, нужно объявить необходимые параметры с модификаторами out. Например. class SomeClass { public int getManyData(out object outData1, out object outData2) { // Код функции outData1 = someValue1; // Необходимо инициализировать выходной параметр outData2 = someValue2; // Необходимо инициализировать выходной параметр return result; } }

Ответ 3



Вернуть Tuple<>

Комментариев нет:

Отправить комментарий