[英]Resharper search pattern to detect methods that return a value that is not used
我希望使用reshaper模式來檢測未處理的IDisposable。 如果我有方法
IDisposable Subscribe(...){....}
並在不分配和使用該IDisposable的情況下調用它,我想被告知。 我嘗試了以下模式
;$expr$;
其中expr
為IDisposable
類型。 發生以下情況。
第一個可以正確檢測,但是第二個是錯誤,因為對現有變量的簡單賦值也是C#中的表達式,而不能使用var
賦值。 是否可以檢測到通過結構搜索分配的返回值?
我注意到resharper具有以下代碼質量選項
但是我猜他們是用比結構化搜索解析器更復雜的東西構建的。
不幸的是,這不能通過結構搜索和替換來完成。 一方面,沒有構造可以與缺少的東西進行匹配,因此無法與沒有賦值其返回值的方法調用進行匹配。
如您所注意到的,有些檢查會跟蹤不使用返回值的純函數,並且這些函數不會使用SSR來實現。 您可以通過將[Pure]
屬性應用於它們來使它們應用於您的方法。 但是,這意味着該方法實際上是純方法,即沒有副作用,因此在這種情況下可能是錯誤的語義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.