如果在不返回方法的情况下修改方法中的引用变量,它被认为是一种不好的做法吗?
例如:
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);
}
答案 0 :(得分:2)
不,那没关系。这是参考变量的要点。 :)
答案 1 :(得分:0)
如果您调用的方法记录它将更改对象中的值,则可以。这可以通过XML文档或通过良好的命名约定来实现。你有ApplyPartNamePrefixes(Widget widget)
,这有点暗示它会改变小部件的状态,但如果你DoStuff
含糊不清或类似GetData
那么如果它改变了那将是一个相当痛苦的经历对象状态。