C#的這個語法是在哪一個版本出現的?
01-13
本來我寫的是
DateTime.Now.ToString("yyMMdd")
然後 Resharper 提示我使用 Format Specifier
然後就變成了下面的樣子
$"{DateTime.Now:yyMMdd}"
這個語法是那個版本加入C#的呢?
還有其他類似的可以用到這個糖的地方嗎?
應該是 C#6 新的 String.Format 吧
// pre C#6
var now = String.Format("{0:yyMMdd}", DateTime.Now);
// C#6
var now = $"{DateTime.Now:yyMMdd}";
題主大約沒有注意到兩邊的引號和括弧
什麼,還能這麼寫?
題主看錯了,其實是這個用法。輪子哥當時就蒙逼了。。。
其實7.0的有些寫法更爽
剛才試了一下……應該是對.NET里自帶的支持ToString帶參的類有效比如:
這個把點去了就是obj-c的語法了。
就我覺得這麼寫很不美麗么,我第一次看到同事這麼寫,確認了兩遍我看的是不是cs文件
結果:a=160829b=160829
c 編譯錯誤
d 編譯錯誤e 直接返回了一個對象,可見想要吃到這個糖,並不是繼承ToString。而且Base的ToString是不帶參數的所以並不能說是繼承。就算可以,至少也要有引號吧,要不怎麼區分變數
這個語法我喜歡!
按照修改後的題目,vs告訴了我們答案。。-------------------------------------------------------------------------
補充一個,Timespan.TotalMilliseconds似乎也可以這麼用,比如(DateTime.Now-startTime).TotalMilliseconds:F0,表示0位浮點數
平行宇宙?
???C#5反正不能這麼寫
這很方便,但是很不好看
DateTime.Now.Parse("yyyyddMM").ToString("yyyyddMM");
是powershell的代碼吧。
推薦閱讀:
※為什麼 C# 應用這麼少?
※如何進一步提升自己的能力?
※C#初學者怎樣系統高效地用MSDN?
※做坦克射擊的遊戲,怎麼樣能讓AI打的不那麼准?
※.net沒落了嗎?