将项目添加到创建的列表时出现 C# nullreferenceerror [重复]

问题描述 投票:0回答:1

我正在为商店类型服务创建一个 webapi。当使用我编写的没有意义的类时,我遇到了 NullReferenceException。这是我的 API 代码:

[HttpGet]
public HttpStatusCode Get()
{
    Item item1 = new Item("Chips", 1, false);
    Console.WriteLine(item1.ToString());
    
    Items collection = new Items("a");
    collection.addItem(item1);

    Items collections = new Items("a");
    collections.addItem(item1);
    Console.WriteLine(collections.getSize());
    return HttpStatusCode.OK;
}

我的商品代码:

public class Item
{
    public Item(string Name, double Price, bool GlutenFree)
    {
        this.itemID = Guid.NewGuid();
        this.name = Name;
        this.price = Price;
        this.glutenFree = GlutenFree;
    }

    public Guid itemID;
    public string name;
    public double price;
    public bool glutenFree;

最后是物品类别:

public Items(string a){
    this.name = a;
}

public string name;
public ArrayList itemCollection;

public int getSize()
{
  

这个想法是单个物品将成为更大物品系列的一部分 - 例如可乐罐将成为饮料系列的一部分。

我遇到的问题是,当我运行此代码时,在将项目添加到项目数组列表时会遇到错误。我尝试在

Get()
方法中实例化本地数组列表,这确实有效,但是它没有给我提供所需的灵活性并且不合适。我不确定为什么会发生这个错误,我已经运行了
if (collection is null)
检查,并且它不会返回 null。我不确定为什么会发生这个错误,希望得到建议

编辑:意识到我没有在我的项目类中执行

new ArrayList()
,这意味着从未创建数组列表。现已修复。

c# .net arraylist nullreferenceexception
1个回答
-1
投票

以下行创建您的类。所以它是一个对象并且不为空。

Items collection = new Items("a");

我没有看到你在哪里实例化你的列表。在 C# 中,您必须先实例化它,然后才能向其中添加任何项目,否则它将抛出空引用。

对 collection.itemCollection 进行空检查。它可能为空。

© www.soinside.com 2019 - 2024. All rights reserved.