关于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
}

很抱歉,如果这是一个新手的问题,但两个都可以,但我不知道哪个更好。

关于c#列表发送或返回它

都不是。

你应该这样做:

 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函数并将列表作为引用参数,则第二个选项还不错,但选项一仍然更好,因为原始列表中不需要函数。

考虑到在任何情况下你都想传递一个现有的列表(已经存在的东西)来增加我喜欢第一个选项,因为它更可读