引用类型参数的ref关键字

时间:2014-09-26 10:15:28

标签: c# coding-style

我认为更清楚的是,如果我将引用类型参数传递给方法,那么将在方法内部进行更改以进行添加 像这样的ref关键字

void Foo(ref Boo boo)
{
    boo.Value = 6;
}

,即使这不会影响程序执行的任何方式,默认情况下对象通过引用传递,我不想更改 如下所示引用内部空白:

void Foo(ref Boo boo)
{
    boo = new Boo();
}

因为我认为使用ref从方法签名中可以清楚地看到我将改变Boo而不仅仅是阅读它。 你同意吗?你怎么看待这个?

1 个答案:

答案 0 :(得分:4)

  

我认为更清楚的是,如果我将引用类型参数传递给方法,那么将在方法内部更改以添加ref关键字,如此

不,这只是表明您不熟悉ref的预期含义。对于操纵对象可用的对象的方法来说,这是完全正常和惯用的。如果您不希望这样: 编写不可变对象

不要这样做。缺少ref 暗示任何类型的const