2013-03-19 32 views
0

我正在使用ConcurrentDictionary,我需要使用TryRemove刪除元素。如何規避未使用的參數值?

TryRemove的執行需要一個返回將要刪除的對象的輸出參數。

Body dummy; 
if (!bulletBodies.TryRemove(bullet, out dummy)) 
{ 

} 
... 

我不想上,每當我刪除我的字典條目的虛擬變量使用附加行:這就是爲什麼我試圖規避了返回參數unsuccesfully鍵入下面的慘狀。我也搜索了一下,沒有成功。

bulletBodies.TryRemove(bullet, null); 
bulletBodies.TryRemove(bullet, out null); 
bulletBodies.TryRemove(bullet, void); 
... 

有沒有一種方法或一個聰明的尖端管理未使用的輸出參數,所以沒有必要在任何地方申報啞變量?

+3

你可以只創建一個擴展方法。 – leppie 2013-03-19 12:52:22

+0

擴展方法看起來不錯。但是,C#中真的沒有特定的關於處理未使用的參數的東西嗎? – Larry 2013-03-19 12:58:22

回答

4

你可以寫一個擴展方法,如:

public static bool TryRemove<TKey, TValue>(this ConcurrentDictionary<TKey, TValue> dictionary, TKey key) 
{ 
    TValue dummy; 
    return dictionary.TryRemove(key, out dummy); 
} 
+0

接受代碼,並平衡兩個好答案之間的代表數量。 – Larry 2013-03-19 13:24:55

7

您可以創建一個不返回已刪除值的擴展方法TryRemove。

相關問題