Questions tagged «out-parameters»

8
有没有比TryGetValue使用C#词典更好的方法?
我发现自己经常在网上查找问题,许多解决方案都包括字典。但是,每当我尝试实现它们时,我的代码都会令人讨厌。例如,每次我想使用一个值时: int x; if (dict.TryGetValue("key", out x)) { DoSomethingWith(x); } 这是4行代码,基本上可以执行以下操作: DoSomethingWith(dict["key"]) 我听说使用out关键字是一种反模式,因为它会使函数改变其参数。 另外,我发现自己经常需要“反向”字典,在其中翻转键和值。 同样,我经常想遍历字典中的各项,发现自己将键或值转换为列表等以更好地做到这一点。 我觉得几乎总是有一种更好,更优雅的字典使用方式,但是我很茫然。

3
非可选指针与C ++中的非常量引用
在其他C ++功能,参考参数的的谷歌C ++风格指南,我读的非const引用,不得使用。 通过引用传递的所有参数都必须标记为const。 很明显,对于C程序员来说,使用引用作为参数的函数调用绝对令人困惑,但是C和C ++现在是不同的语言。如果输出参数需要,使用指针为所需的输出参数,可能对被跳过整个功能体,这使得更复杂的功能(正式增加的实施圈复杂和深度的函数的)。 我想使C ++代码尽可能容易理解/维护,因此我通常对阅读编码风格指南感兴趣。但是,为了适应团队中的最佳实践,我认为理解样式指导元素背后的原理是一个重要因素。 非常量引用真的那么糟糕吗?是只禁止Google禁止使用它们还是被普遍接受的规则?是什么证明了将输出参数实现为指针所付出的额外努力?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.