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

本文关键字:参数 out 何规避 未使用 | 更新日期: 2023-09-27 18:04:35

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

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

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

我不想在每次删除字典中的条目时在虚拟变量上使用额外的行:这就是为什么我试图绕过out返回参数,但键入下面的恐怖内容失败的原因。我也谷歌了一下,没有成功。

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);
}