我已經經歷了一些尷尬的間歇錯誤,其中異步方法都返回void而不是任務,因此沒有被期待已久的異步方法。爲了避免將來出現這樣的問題,我試圖創建一個自定義的resharper模式來突出顯示警告等方法。如何配置ReSharper的警告有關返回void
我創建像一個圖案:
async void $methodname$($arguments$)
{
$statements$
}
(其中參數和語句允許每個的數量不受限制,並匹配方法是含有1個或多個合法的標識符字符的標識符)
奇怪這個亮點所有的void方法而不僅僅是異步void方法。任何人都能看到我的錯誤?由於它似乎是一種嘗試匹配的常見模式,而谷歌不會報告它,所以我懷疑它是否是Reshaper 8.2.1中的一個突出問題。
P.S.我知道我的模式將不匹配泛型方法 - 如果我能得到它非一般的人工作,我以後會解決這個問題了)
UPDATE
正如我知道有意見強調這個規則不會處理的一些誤報和誤報。我在這裏關心的是如何獲得異步匹配以在resharper中工作 - 一旦我能夠使規則更加精確,我就可以看到這一點。
如果'$ methodname $'需要'await'方法調用該怎麼辦? – 48klocs
如果我的問題不明確,我很抱歉,這些方法引起的錯誤是因爲我想找到的方法確實是異步的,需要等待。解決方法是使方法返回任務,並因此鼓勵/警告呼叫者等待其完成。幾乎所有的異步方法都應返回任務或任務。 –
Typhlosaurus
儘管如此,這將無法解釋真正應該是「異步無效」的頂級事件處理程序。它也不會解決異步lambda,這在我的經驗中是無意的'async void'方法的最可能的原因。 – Servy