在没有在C#中返回任何内容的情况下修改引用变量被认为是一种不好的做法吗?

时间:2010-12-16 03:30:25

标签: c# methods reference

如果在不返回方法的情况下修改方法中的引用变量,它被认为是一种不好的做法吗?

例如:

public Widget GetWidget()
{
    Widget widget = FetchWidget();
    ApplyPartNamePrefixes(widget);
    return widget;
}

public void ApplyPartNamePrefixes(Widget widget)
{
    widget.PartName1 = String.Format("{0}{1}", "*", widget.PartName1);
    widget.PartName2 = String.Format("{0}{1}", "**", widget.PartName2);
}

2 个答案:

答案 0 :(得分:2)

不,那没关系。这是参考变量的要点。 :)

答案 1 :(得分:0)

如果您调用的方法记录它将更改对象中的值,则可以。这可以通过XML文档或通过良好的命名约定来实现。你有ApplyPartNamePrefixes(Widget widget),这有点暗示它会改变小部件的状态,但如果你DoStuff含糊不清或类似GetData那么如果它改变了那将是一个相当痛苦的经历对象状态。