簡體   English   中英

重新共享搜索模式以檢測返回未使用值的方法

[英]Resharper search pattern to detect methods that return a value that is not used

我希望使用reshaper模式來檢測未處理的IDisposable。 如果我有方法

 IDisposable Subscribe(...){....}

並在不分配和使用該IDisposable的情況下調用它,我想被告知。 我嘗試了以下模式

;$expr$;

其中exprIDisposable類型。 發生以下情況。

在此處輸入圖片說明

第一個可以正確檢測,但是第二個是錯誤,因為對現有變量的簡單賦值也是C#中的表達式,而不能使用var賦值。 是否可以檢測到通過結構搜索分配的返回值?

我注意到resharper具有以下代碼質量選項

在此處輸入圖片說明

但是我猜他們是用比結構化搜索解析器更復雜的東西構建的。

不幸的是,這不能通過結構搜索和替換來完成。 一方面,沒有構造可以與缺少的東西進行匹配,因此無法與沒有賦值其返回值的方法調用進行匹配。

如您所注意到的,有些檢查會跟蹤不使用返回值的純函數,並且這些函數不會使用SSR來實現。 您可以通過將[Pure]屬性應用於它們來使它們應用於您的方法。 但是,這意味着該方法實際上是純方法,即沒有副作用,因此在這種情況下可能是錯誤的語義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM