Visual Studio 2015 & C#6.0 試用報告,持續更新。


昨天早上看到了.net開源的消息,我是非常興奮的,畢竟局限於Windows的.NET經常被人唾棄。VB暫且不提,C#常年被人指責跨平台性不佳,我也是無能為力。即使有Mono等第三方跨平台工程,.NET的跨平台性還是不盡人意。

看到了.NET開源的消息后,又看見了Visual Studio 2015,讓我沒想到的是,VS居然已經集成了跨平台開發,這令我十分意外,如此保守和唾棄Android、Linux的微軟,居然肯在自家的VS上集成其他平台的開發。。。。

我對Android的了解還不是很深,只停留在”Android的程序大部分是用Java寫的“之類的認識。既然微軟真的這么做了,那我也得開始研究Android App啦!(笑)

不過,首先還是得來研究新的Visual Studio和新的C#,畢竟是老本行。。。本來以為能看見.net 5.0,結果微軟甩了個.net 4.6。。。。真是。。。。。。

 

 

首先送上下載地址。(不知道是不是每個人唯一的,應該不是吧。。。下載的時候微軟讓我登陸Microsoft賬戶)

http://download.microsoft.com/download/4/A/0/4A0D63BC-0F59-45E3-A0FF-9019285B3BC5/vs2015.preview_ult_ENU.iso

下載好的ISO是4.4G,比起2013Update3的6G多小了好多。。。。。難道是微軟優化了代碼?(嘲諷的是,VS12只有1.5G)

 

安裝

現在Blend已經成了強制安裝內容了233,新多出來的VS core不知道是啥玩意兒。。。選上就對啦!

 

先說說C# 6.0

微軟在14年5月就發布了C# 6.0預覽版,不過需要手動安裝到Visual Studio,並稱能兼容現有.net版本(貌似也就是兼容.NET 4.5),

C# 6.0有幾個主要的更新,非常大的一個就是關於屬性。

這是官方的一個Preview,去年的了。

http://msdn.microsoft.com/en-us/magazine/dn683793.aspx

 

C#6.0之前,是這么給一個屬性進行手動初始化的

private int _x = 10;

    public int X
    {
        get { return _x; }
        set { _x = value; }
    }

 

現在可以直接這么干

 public int X { get; set; } = 10;
 public int Y { get; set; } = 20;

如果要創建一個只讀屬性並且給他賦值,以前是這么干的

    private readonly int _x = 10;
    public int X { get { return _x; } }

    private readonly int _y = 20;
    public int Y { get { return _y; } }

現在簡化成了這樣

public int X { get; } = 10;
public int Y { get; } = 20;

以前的話,用一個Primary Constructor給屬性賦值是這樣的。

class PropertyTest
{
    private readonly int _x; 
    public int X { get { return _x; } } 

    private readonly int _y;
    public int Y { get { return _y; } }

    public Point(int x, int y)
    {
        _x = x; 
        _y = y;
    }

    public PropertyTest() : this(0, 0) { }
}

現在簡化成這樣

class PropertyTest(int x, int y) 
{
    public int X { get; } = x; 
    public int Y { get; } = y;

    public PropertyTest() : this(0, 0) { }
}

以前給屬性賦值加以限制是這么干的

class FirstQuadrant
{
    public int X { get; private set; }
    public int Y { get; private set; }

    public FirstQuadrant(int x, int y)
    {
        if (x < 0) throw new ArgumentException("x 必須為正.");
        if (y < 0) throw new ArgumentException("y 必須為正.");

        X = x;
        Y = y;
    }
}

現在可以這么干

class FirstQuadrant(int x, int y)
{
    {
        if (x < 0) throw new ArgumentException(nameof(x) + "必須為正.");
        if (y < 0) throw new ArgumentException(nameof(y) + "必須為正.");
    }

    public int X { get; } = x;
    public int Y { get; } = y;
}

 

以上是關於屬性方面的改變,其他的。。。我再來慢慢說。。。

關於屬性的改變,的確就是個語法糖,不過,它真的方便了很多,你們不要黑他>.<

 

好了。。。VS裝好了,重啟去。。。。

 重啟完出來這個。。。叫我裝移動平台的開發工具,還tm要聯網。。。



結果是。。。下載一半爆炸了。。。說是下載錯誤什么的。。。然后我就再也找不到這個Secondary Installer了。。。

走你,跟VS13的步驟差不多




IE11裝好了!問題都搞定了,開始測試!


界面和2013比沒什么變化,新建個工程試試!



微軟你弄這么多4.5意義何在= =



新建的空WPF App的默認XAML代碼有了些變化,多引用了些類庫,並且自動把當前工程給引用進來了,挺實用的。


默認的引用也發生了變化,多了幾個新的。


Analyzer不是一個類庫,具體怎么用,我也不知道。。。。我去翻翻看微軟的介紹。。。





沒用到的using會顯示成灰色



UI也改進了挺多的




屬性新的賦值方式的確非常方便,非常不錯的語法糖!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM