关于c#列表发送或返回它
本文关键字:返回 列表 关于 | 更新日期: 2023-09-27 18:05:40
我有一个问题。我需要做一个方法来填充List <对象>从SQL数据库中获取。我的问题是对象>
最好这样做:
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
}
很抱歉,如果这是一个新手的问题,但两个都可以,但我不知道哪个更好。
都不是。
你应该这样做:
List<Product> listProducts = loadProducts();
选项1创建一个新列表,只是为了稍后覆盖它。选项2不必要地将列表传递给方法,该方法只会将修改后的列表发送回来。
我宁愿返回它。除非当你发送列表的内容时,它有一些东西,否则我真的不认为有理由将它作为参数传递。
Go for this
List<Product> listProducts = loadProducts();
//this code is in other class
public List<Product> loadProducts()
{
List<Product > listProduct = new List<Product> ();
//code
return listProduct
}
你的第一个选择要好得多。意义明确,无副作用。
第二个选项将返回列表并填充传递给它的列表。我认为填充我传递的列表是一种不希望出现的副作用。
我选择第一种方法。
给方法传递一个列表似乎没有什么意义,这个列表将被填充并返回。
第一个选项更好。如果您将其作为一个void函数并将列表作为引用参数,则第二个选项还不错,但选项一仍然更好,因为原始列表中不需要函数。
考虑到在任何情况下你都想传递一个现有的列表(已经存在的东西)来增加我喜欢第一个选项,因为它更可读