C#4 VS2015 把delegate的null check代碼標灰了,該怎麼辦?
01-02
如圖所示。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 |