gpt4 book ai didi

c# - 将引用字符串或引用类传递给函数是否有充分的理由?

转载 作者:行者123 更新时间:2023-11-30 19:13:17 25 4
gpt4 key购买 nike

我和一位同事今天在争论制作这种功能是否有用:

private void MyFunction(ref MyClass variable)
{

}

我能看到的唯一优点是它允许您将指向变量的原始指针设置为 null...除此之外,如果您省略 ref 就没有区别,对吗?

您能想到将引用字符串传递给函数的任何理由吗?

最佳答案

就我个人而言,我更愿意返回具有多个值的 Tuple,但基本要点是为调用者提供多个结果。在 ref 参数的情况下,额外的结果可能会替换现有变量中的值。请注意,这与仅处理参数本身有很大不同。例如:

public void Foo(ref StringBuilder builder)
{
builder = new StringBuilder("hello");
}

完全不同于:

public void Foo(StringBuilder builder)
{
builder.Clear();
build.Append("hello");
}

参数类型是引用类型还是值类型有些无关紧要 - 特别是当您考虑不可变类型(如 string)时,后者没有等价物上面的方法。

关于c# - 将引用字符串或引用类传递给函数是否有充分的理由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4198850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com