我正在为商店类型服务创建一个 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()
,这意味着从未创建数组列表。现已修复。
以下行创建您的类。所以它是一个对象并且不为空。
Items collection = new Items("a");
我没有看到你在哪里实例化你的列表。在 C# 中,您必须先实例化它,然后才能向其中添加任何项目,否则它将抛出空引用。
对 collection.itemCollection 进行空检查。它可能为空。