将成员传递给非静态函数而不引用

时间:2012-01-27 20:57:57

标签: c#

我在几个setter中的类中有这个构造:

this.RaiseUnselected(this.property);
this.property = value;
this.RaiseSelected(this.property);

为了清理我的课程,我将其提取为如下方法:

    private void SetProperty(IType target, IType value)
    {
        this.RaiseUnselected(target);
        target = value;
        this.RaiseSelected(target);
    }

这导致一些单元测试失败。您可能会发现问题是target按值传递,设置不会反映回this.property传递给target

我通过将功能更改为

来修复它
private void SetProperty(ref IType target, IType value)

但如果可能,我不是使用ref的忠实粉丝。还有其他建议吗?

1 个答案:

答案 0 :(得分:3)

这是ref的意思;在这里使用它并没有错。