使用(int,int)最佳 , 沒GC可讀性高 可定義變數名稱
ValueTuple<int, int> 等價於 (int,int) 不可定義變數名稱
out int a , out int b 舊版C#適用
Tuple<int, int> Reference Type 不建議使用 會GC
範例:
// ValueTuple<int, int> 屬於 Value Type , 不會產生 GC
public ValueTuple<int, int> GET3()
{
return new ValueTuple<int, int>(1, 2);
}
// ValueTuple<int, int> 等價於 (int, int) 屬於語法糖 可以互轉
public (int a, int b) GET1()
{
return (1, 2);
}
// ValueTuple<int, int> 等價於 (int, int) 屬於語法糖 可以互轉
public ValueTuple<int, int> GET4()
{
//簡易寫法
return (1, 2);
}
public (int a, int b) GET2()
{
//可自定義變數名稱 可讀性比較好
(int a, int b) val;
val.a = 1;
val.b = 2;
return val;
}
// Tuple<int,int> 屬於 Reference Type , 會產生 GC
public Tuple<int, int> GET5()
{
return new Tuple<int, int>(1, 2);
}
// 用 out 參數直接改值
public void GET(out int a, out int b)
{
a = 1;
b = 2;
}