優先考慮 nameof

在分佈式場景中,我們經常需要進行多個系統之間的通信,要實現這些通信往往需要不同的庫對相應的需求進行處理。這些庫爲了實現跨平臺和跨語言的兼容性往往利用數據名稱和字符串來運行,但是這麼做就會出現類型安全問題,並且大部分工具也無法支持。
針對前面所述的問題, C# 6.0 中新增了 nameof 表達式,這個表達式可以根據變量來獲取包含其名稱的字符串,從而使開發人員不需要將變量名稱寫成字符串。使用 nameof 的好處有如下兩點:

  1. 如果屬性名改變了,那麼相關的參數也會改變;
  2. nameof 會根據符號找出表示這個符號名稱的字符串,其中所說的符號可以是類型、變量、接口或者命名空間。在 nameof 面對各種各樣的符號的時候,表現出了協調一致的特徵,不管變量是使用完全限定方式傳遞的還是其他的方式,它總是返回局部名稱。

同樣 nameof 也存在需要注意的地方,當我們針對泛型使用它時,我們的泛型類必須是封閉的,開發人員必須把每個類型參數顯示制定出來。

在 C# 中部分異常類型可接受 string 參數,這可以讓開發人員將引發異常的變量名作爲參數傳遞出去。例如當我們檢測到某個參數爲空時需要拋出異常可以這麼做:

throw new ArgumentNullException(nameof(para),"參數類型爲空");-

這麼寫的好處是靜態分析工具可以檢查是否把引發異常的變量名放置在了正確的位置上。

敬告:本篇文章首發於 喵叔的CSDN博客,未經授權任何網站、公衆號、App 不允許轉載,授權的網站、公衆號、App 需明確標識本篇文章地址。需轉載請聯繫 [email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章