use*_*762 0 c# static initialization list
对于下面的代码,main()方法中的foreach循环不显示任何值.即我的列表没有初始化显示.请帮我.提前致谢.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sample
{
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Program
{
public static List<Product> allProducts;
public static void InitialiseMyProducts(List<Product> allProducts)
{
allProducts = new List<Product>
{
new Product(){Id=1,Name="TV"},
new Product(){Id=2,Name="Bat"},
new Product(){Id=3,Name="Ball"},
new Product(){Id=4,Name="Chair"},
};
}
public static void Main(string[] args)
{
List<Product> allProducts = new List<Product>();
allProducts = new List<Product>();
InitialiseProductList(allProducts);
foreach (Product res in allProducts)
{
Console.WriteLine("ID:" + " " + res.Id + " " + "Name:" + " " + res.Name);
}
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
你有几个变量都被称为allProducts:
InitialiseMyProductsMain你正在Main两次初始化局部变量,然后将其传递给InitialiseMyProducts(或InitialiseProductList- 你已经将名称改为中途).但是,该方法然后忽略先前的值并更改参数以引用另一个列表.这是无关紧要的Main,因为参数已经通过值传递.
我会建议两种不同的选择之一:
static完全删除变量,然后InitialiseProductList 返回 aList<Product>InitialiseProductList应该没有参数最重要的是首先要了解为什么现有代码不起作用.确保上述所有描述都有意义,并随时提出问题以获得额外的解释.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |