1
例如,我有一個名爲「filterTop3Items(List list)」的方法。我應該返回結果還是返回無效?我應該返回值還是使用void?
public List<Item> filterTop3Items(List<Item> list>;
或
public void filterTop3Items(List<Item> list);
第二個將修改的輸入參數。
就可維護性而言,最佳做法是什麼?
編輯:
對於情況1:
List<Item> list = new List<Item>();
... (add item multiple times) ...
List<Item> filteredList = filterTop3Items(list);
... (process filteredList) ...
對於情況2;
List<Item> list = new List<Item>();
... (add item multiple times) ...
filterTop3Items(list);
... (process list) ...
對於情況2,如果您試圖瞭解代碼,您必須跟蹤操作以瞭解列表中的內容。對於案例1,讀者可以通過查看變量名「filteredList」來理解代碼。這是可維護性問題之一。
這取決於你的電話是否想改變他們的參數。 – SLaks
如果你'返回'你意味着你返回一份副本。如果你返回void,那你就是說這個方法改變了輸入。所以問題是你的方法做什麼? –
答案取決於您的要求,而不是可維護性。然而,要考慮的重要一點是*其他*可能會引用原始列表。 –