C#4 VS2015 把delegate的null check代碼標灰了,該怎麼辦?

如圖所示。C#4里沒有null condition operator,而我的delegate的null check代碼被標灰了。那麼是否應該做null check?正確方法應該怎麼做?聽說有一種在聲明delegate時賦值為空delegate例如:public PjtAnimCtrlDelegate testHandler = delegate {};,這個如何?


跟null check沒關係,這裡VS是提示你可以簡化成更簡潔的寫法:

someDelegate?.Invoke();

跟加null check是等效的,是C# 6的語法,Unity用的C# 4不支持,按理說不應該提示。這個重構是Update 2引入的,我猜是個bug,不用理。


這個連warming都不算吧?我為什麼要管?


置灰是IDE的智能檢測。

下面是 VS2015 update1 + Resharper

建議修改後:TestAction?.Invoke();至於在聲明delegate時就賦值為空delegate的做法,從邏輯上來講不建議這樣做。


既然是編程灰色,

而不是出波浪線的提示,

那麼,

會不會是,

在,

構造函數中,

對這個委託,

進行了初始化。

而且,

這個代碼,

只是,

全部代碼的一部分,

啊。


推薦閱讀:

C#在開源框架的數量和質量上有希望追上JAVA么?
如何系統掌握遊戲編程中3D圖形學相關的基礎?
你遇到過哪些代碼優雅的C#項目?
除了收費的軟體或者庫以外,如何解析doc格式word文件,C++或C#語言的?
使用 C# 開發 iOS 程序是一種怎樣的體驗?

TAG:編程 | NET | C# | MicrosoftVisualStudio |