我有一個問題。我必須做一個方法,從sql數據庫填充一個列表<對象>。我的問題是:關於c#列表發送或退貨?
這是更好地做到這一點:
List<Product> listProducts = new List<Product>();
listProducts = loadProducts();
//this code is in other class
public List<Product> loadProducts()
{
List<Product > listProduct = new List<Product>();
//code
return listProduct
}
或者是更好的:
List<Product> listProducts = new List<Product>();
listProducts = loadProducts(listProducts);
//this code is in other class
public List<Product> loadProducts(List<Product> listProduct)
{
//Code
return listProduct
}
很抱歉,如果這是一個小白的問題,但都兩部作品,但我不知道這是更好的改善。
非常感謝。
在你的第一種方法,用'名單 listProducts =新列表();'你爲空白創建一個新的空列表(下一行指定一個新的列表實例)。只是'列表 listProducts = loadProducts(listProducts);' –
我儘量減少副作用,因爲我發現它會導致代碼混亂。在現代硬件上創建對象很便宜*不要害怕它。我避免了第二種方法,這個成語沒有出現在我的代碼中。 (我能記得的一個例外是使用DataTable時,但這是一個非常特殊和注意的情況。)如果* do *修改了傳入的List,*請使用void返回類型*,因此調用者「知道」該手術利用副作用。 (考慮將'List.Add'作爲遵循該規則的方法。) – 2011-08-16 18:22:27