Build 2018大會:C#的未來
\\\看新聞很累?看技術新聞更累?試試下載InfoQ手機客戶端,每天上下班路上聽新聞,有趣還有料!
\
在C#的未來特性清單上,排在第一位的是可空引用型別。我們第一次報導這個特性是在去年,這裡我們簡要的回顧一下:所有的引用變數、引數和欄位預設都是非空的。然後,和值型別一樣,如果你希望它們可以為空,你就必須在型別名上加一個問號(?)來顯式說明。
\\這會是一項可選特性,目前的想法是,對於將升級到C# 8的現有專案,可空引用型別特性是關閉的。對於新專案,微軟傾向於預設開啟這項特性。
\\警告會進一步分成潛在錯誤和表面警告。例如,如果p.MiddleName是一個string?,那麼下面這行程式碼會是一個表面警告:
\\string middleName = p.MiddleName;\
\\由於危險只會出現在值解引用的時候,所以這種對區域性變數的賦值並不是一個真正的問題。因此,你可以在遺留程式碼上禁用這個警告,以減少誤報數量。
\\同樣,早於這項特性的庫也不會觸發警告,因為編譯器不知道一個指定的引數是否應該視為可空的。
\\GitHub上提供了可空引用型別的預覽。
\\Switch表示式
\\Switch塊通常用於簡單地返回單個值。在這個常見的場景中,其語法比實際完成的工作要複雜得多。考慮下下面這個使用模式匹配的例子:
\\static string M(Person person)\{\ switch (person)\ {\ case Professor p:\ return $\"Dr. {p.LastName}\";\ case Studen s:\ return $\"{s.FirstName} {s.LastName} ({s.Level})\";\ default:\ return $\"{person.FirstName} {person.LastName}\";\ }\}\
\\在新的提案中,反覆出現的case和return語句可以省掉,其結果是下面這種更新、更緊湊的語法:
\\static string M(Person person)\{\ return person switch\ {\ Professor p =\u0026gt; $\"Dr. {p.LastName}\
相關文章
- 從Build 2019,看微軟的未來辦公編織路徑UI微軟
- QUIC 將會是 WebRTC 的未來麼?UIWeb
- Microsoft 365及應用開發的未來:微軟BUILD 2018大會第二天主題演講ROS微軟UI
- 未來Hadoop還會有生命嗎?Hadoop
- 未來50%的工作會被機器人替代?機器人
- 工業人工智慧的未來會怎樣?人工智慧
- 未來,哪些技術在前端開發的地位會越來越高?前端
- 未來五年的晶片大贏家會是哪些?晶片
- eBPF會成為服務網格的未來嗎?eBPF
- 未來的瀏覽器會怎麼發展呢?瀏覽器
- 《重返未來1999》,未來的你能撐多久?
- 未來論壇報告:茶葉的未來
- DevOps 的未來dev
- 科技導向 | 電網的未來發展會怎樣?
- IO Interactive 與《殺手》系列的未來走向將會如何?
- 未來客服會被人工智慧代替嗎?人工智慧
- 2022,每個 Leaper 都會有好未來
- 假期結束了,我相信未來會更好!
- C#未來新特性:靜態委託和函式指標C#函式指標
- 低程式碼平臺會是軟體業的未來麼?
- Rust會成為JavaScript未來的基礎設施嗎? – thenewstackRustJavaScript
- 福布斯:區塊鏈——社會影響力未來的關鍵區塊鏈
- fil多少錢一個,未來會漲到多少?
- 探索未知的未來
- 遊戲的未來遊戲
- 輝煌的未來
- 未來的Linux世界Linux
- 好未來有沒有“好未來”?
- 未來六個月,會是手遊行業的分水嶺嗎?行業
- 程式設計師未來會成為非常內卷的職業?程式設計師
- 紐約美國營銷協會報告:營銷的未來
- 展現“維京之怒”後的《戰爭雷霆》,未來會如何?
- 生生不息:Z世代與財會行業的未來報告行業
- Web開發的未來:2025 年未來幾年的主要趨勢Web
- 移動遊戲產業的未來:流量變現的未來(五)遊戲產業
- ChatGPT 未來會擁有自我情感和思維嗎?ChatGPT
- 雲棲大會,未來萬物皆是計算機?計算機
- 2024年,軟體測試還會有未來嗎?