標籤:android style blog http io color ar os sp
昨天早上看到了.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的步驟差不多
然後就是哈哈哈哈哈哈哈哈哈,怎麼登陸都失敗,不登陸還不能用,啊哈哈哈哈哈哈
解決中。。。次奧!
這真是。。。。哈哈哈哈哈哈哈哈哈哈 T_T
無論連不連VPN都這樣。。。。。我重啟去了。。。
要瘋了,還是登陸不上去,彈出來一個顯示打不開驗證網頁的IE,可能真是IE7太老了。。。。。。慢慢升級去,各位等等咯~我也得上班去了,下午回家準時更新。
裝個IE11還要先裝更新,真是不爽。。。
Visual Studio 2015 & C#6.0 試用報告,持續更新。