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