昨天早上看到了.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也改進了挺多的


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