C# 如何规避未使用的out参数值?

C# 如何规避未使用的out参数值?,c#,parameters,null,void,out,C#,Parameters,Null,Void,Out,我正在使用ConcurrentDictionary,需要使用TryRemove删除元素 TryRemove的实现需要一个out参数,该参数返回将被删除的对象 Body dummy; if (!bulletBodies.TryRemove(bullet, out dummy)) { } ... 每当我删除字典中的条目时,我不想在伪变量上使用额外的一行:这就是为什么我试图绕过out return参数,但没有成功地键入下面的horrors。我也用谷歌搜索了一下,但没有成功 bulletBodies

我正在使用ConcurrentDictionary,需要使用TryRemove删除元素

TryRemove的实现需要一个out参数,该参数返回将被删除的对象

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

}
...
每当我删除字典中的条目时,我不想在伪变量上使用额外的一行:这就是为什么我试图绕过out return参数,但没有成功地键入下面的horrors。我也用谷歌搜索了一下,但没有成功

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

是否有一种方法或聪明的技巧来管理未使用的out参数,从而无需在任何地方声明虚拟变量?

您可以创建一个不返回删除值的扩展方法TryRemove。

您可以编写一个扩展方法,例如:

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

您可以创建一个扩展方法。扩展方法看起来不错。然而,对于C语言来说,处理未使用的out参数真的没有什么特别的地方吗?代码接受它,并在两个好的答案之间平衡rep的数量。