2010-12-16 79 views
1

如果您修改方法中的引用變量而不返回它,這是否被認爲是不好的做法?修改引用變量而不返回C#中的任何內容是否被認爲是不好的做法?

例如:

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); 
} 
+3

如圖所示,該方法覺得它應該是Widget類中的實例方法,而不是採用參數小部件,而是在當前實例(this)上進行操作。 – Josh 2010-12-16 03:39:29

+0

然而,即使是書面的,你的方法名稱也很清楚你正在改變某些東西,所以我認爲你在這裏很安全。 – CubanX 2010-12-16 03:43:48

回答

2

不,這很好。這是參考點的變量。 :)

0

如果您調用文檔的方法會改變對象中的值,那就好了。這可以通過XML文檔或通過良好的命名約定。你有ApplyPartNamePrefixes(Widget widget)這有點暗示它會改變小部件的狀態,但如果你有DoStuff這是模糊的或類似GetData那麼這將是一個相當痛苦的經驗,如果它改變對象的狀態。

相關問題