Страницы

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

суббота, 6 октября 2018 г.

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

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


Ответ

В версиях 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); }

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

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