有时,我得到了辅助方法,如:
private string generateReport(string doc, List<string> sheets, Blah blahblah)
{
//doStuff()
}
在我的代码中看到很多这些让我想知道我是不是在搞乱计算机内存 - 来回抛出参数。在基本层面上,这个问题通过使用类级别变量来解决,但在某些情况下,我可能是从一个类派生或使用另一个类的辅助方法。所以我的问题是:
使用引用是一个更好的选择吗?即。
private string generateReport(ref string doc, ref List<string> sheets, ref Blah blahblah)
{
//doStuff()
}
我何时不使用它(如果适用)?
感谢。
答案 0 :(得分:6)
直接回答是否定的。 请看这个问题和答案: Which is faster? ByVal or ByRef?
还要记住,通过引用传递最重要的是设计选择。通过引用传递表明对参数所做的任何更改都将直接影响所提供的变量。如果您想要返回多个参数(如果您正在寻找上述行为),则只应使用此选项。
最后,如果您的代码处理不重,您不应该专注于提高性能,而应该专注于可读性和稳定性。
答案 1 :(得分:1)
否 - “通过引用传递”实际上将传递引用 ,这是32位系统上的4个字节。
因此,如果您的变量与参考一样大(或小于),那么它肯定不会更快 - 可能会慢一点。
否则,它只取决于您的变量有多大 - 根据代码的不同,它可能更快或更慢。