2
與下面的代碼,鑄造新的元組舊人給編譯錯誤
class Program
{
static void Main(string[] args)
{
Tuple<int, int> test = TupleTest();
}
static (int, int) TupleTest()
{
return (1, 2);
}
我得到以下編譯時錯誤。
錯誤CS0029無法隱式轉換類型 '(INT,INT)',以 'System.Tuple < INT,INT>'
這是否意味着元組的新版本與兼容舊版本隱式?或者我在這裏做錯了什麼?
「新的元組」是一個不同的類型,稱爲['System.ValueTuple'](https://msdn.microsoft.com/en-us/library/system.valuetuple (v = vs.110).aspx)(參見[this question](http://stackoverflow.com/questions/41084411/whats-the-difference-between-system-valuetuple-and-system-tuple)討論的差異)和AFAIK有沒有計劃,使其可以隱式轉換爲'System.Tuple' – UnholySheep
正如Matej回答下面你應該使用擴展方法('ToTuple')。 那些無法實現爲用戶定義的轉換的原因是我們需要它們超出參數7。 –