C# 6.0 新功能介紹

SONY DSC
C# 經過多年的改進,功能愈來愈強大,下一版的 C# 6.0 目前也已經包含在 Visual Studio 2014 CTP 裡,本篇文章將會介紹幾個比較重要的功能。
Auto Properties定義類別時,如果要設定 Property 的預設值,只能在建構子裡設定,而在 C# 6.0 可以這樣定義:

    public class Foo
    {
        //auto property
        public int x { get; set; } = 1;
        public int y { get; set; } = 2;
    }

Primary Constructors

在定義建構子時,可以把最重要且必須要執行的建構子定義在最外層,而且還可以搭配 Auto Properties:

    public class Foo(int x, int y)
    {
        public Foo() :this(0,0)
        {
        }

        //auto properties
        public int x { get; set; } = x;
        public int y { get; set; } = y;
    }

Declaration Expressions

其實就是一個可以少打幾個字的變數宣告方式:

string strValue = "3";
int.TryParse(strValue, out int intValue);

變數 intValue 就直接在 TryPase 裡直接宣告。

Static Using Statements

這個設計真的造福了所有的 C# 程式設計師,想想每次要列印文字,都一定得打上 Console.WriteLine,但以後可以簡化成以下程式碼:

using System;
using System.Console;   //Static Using

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            WriteLine("A");
            WriteLine("B");
            WriteLine("C");
        }
    }
}

以往 Using 後面只能接 Namespace,但在 C# 6.0 裡,後面能直接放 static class。

Expression Bodied Functions and Properties

這功能算是一個語法蜜糖,當類別裡的方法較為單純時,可以用下列的方式宣告:

    public class Foo(int x, int y)
    {
        public int Add(int x, int y) => x + y;
        public string GetString() => "aaa3";
        public string MyString => "aaa3";
    }
廣告