Как вернуть несколько значений из функции в C#
Ответ
В версиях C# c 4 по 6 включительно, лучшими вариантами вернуть из функции(метода вернее), являлись возвращение кортежа Tuple<> или создание класса\структуры с нужными свойствами. Вариант с out-параметрами, хуже, т.к. немного выбивается из основных парадигм применяемых при разработке на C#, и был встроен скорее для поддержки импорта нативных функций.
На сегодняшний день (C#7) удобной и достаточно качественной альтернативой является использование кортежей поддерживаемых на уровне синтаксиса языка при помощи значимого типа ValueTuple (Правда требуется добавлять библиотеку System.ValueTuple, например через NuGet).
возвращение кортежа Tuple<>
public Tuple
создание класса
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);
}
Комментариев нет:
Отправить комментарий