2016年11月21日 星期一

C# 7 Tuple Types與Tuple Literals

 

Tool:Visual Studio 2017 RC
OS:Windows Server 2012
.NET Framework : 4.5.2、C# 7

C# 7 新增語法新增tuple types 與 tuple literals。可以讓C# Function回傳兩個以上的值。 以下步驟,在Visual Studio 2017 RC版,建立一個Console程式進行測試。

專案的.NET Framework的版本似乎不重要,我的專案Target Framework是設在4.5.2版。但需要在專案中要先使用NuGet Package Manager安裝套件:

Install-Package System.ValueTuple

或用圖型介面安裝:

image

然後就可以在專案之中,使用新語法,以下範例程式碼(B)宣告一個calc方法,回傳一個Tuple型別。(C)回傳一個Tuple Literal。(A)使用deconstructing declaration語法,將Tuple中的內容切割,按順序放到sum與count變數之中,然後印出它們的值。

using System;
using System.Linq;

namespace CS7Language
{
    class Program
    {
        static void Main(string[] args)
        {
            //(A)deconstructing declaration
            var (sum, count) = calc(new[] { 1, 2, 3 });
            Console.WriteLine(sum);
            Console.WriteLine(count);
        }

        static (int x, int y) calc(int[] values) //(B) return tuple type
        {
            return (values.Sum(), values.Length); //(C) tuple literal
        }
    }
}

沒有留言:

總網頁瀏覽量