C# 元組
從函數(shù)中返回多個值有多種方法。例如,可用使用前面討論的out關(guān)鍵字、結(jié)構(gòu)或數(shù)組。雖然使用out關(guān)鍵字可以達(dá)到此目的,但這樣使用該關(guān)鍵字并不是它最初的設(shè)計用途。記住,out關(guān)鍵字旨在通過引用傳遞參數(shù),而不必事先初始化它。而結(jié)構(gòu)、數(shù)組和類都是有效的選擇,但需要額外編寫代碼來創(chuàng)建、初始化、引用和讀取它們。相比之下,使用元組則是達(dá)到此目的的一種非常優(yōu)雅的方法,且只需要很小的開銷。
因為元組提供了一種非常方便和直接的方法來從函數(shù)中返回多個值,在程序不需要結(jié)構(gòu)或更復(fù)雜的實現(xiàn)時,使用元組非常有效。如下面的簡單示例所示:
var numbers = (1, 2, 3, 4, 5);
上面的代碼創(chuàng)建了一個名為munbers的元組,其中包含成員Item1、Item2、Item3、Item4和Item5,可采用下面的方式來訪問這些成員:
var number = numbers.Iteml;
如果要給這些成員指定特定的名稱,可以明確地標(biāo)識它們:
(int one, int two, int three, int four, int five) nums = (1, 2, 3, 4, 5);
int first = nums.one;
方法聲明看起來應(yīng)該如下所示:
private static (int max, int min, double average)
GetMaxMin(IEnumerable<int> numbers)
{
return (Enumerable.Max(numbers),
Enumerable.Min(numbers),
Enumerable.Average(numbers));
}
然后,在簡單的控制臺應(yīng)用程序運行下面的代碼:
static void Main(string[] args)
{
IEnumerable<int> numbers = new int [ ] { 1, 2, 3, 4, 5, 6 };
var result = GetMaxMin{numbers);
WriteLine($"Max number is {result.max}, " +
$"Min number is {result.min}, " +
$"Average is {result.average}");
ReadLine();
}
點擊加載更多評論>>