将项目添加到已创建的列表时发生C#nullreferenceerror
我正在为商店类型的服务创建webapi。在使用我编写的一个毫无意义的类时,我遇到了一个NullReferenceException。以下是我的api代码:将项目添加到已创建的列表时发生C#nullreferenceerror,c#,.net,api,arraylist,nullreferenceexception,C#,.net,Api,Arraylist,Nullreferenceexception,我正在为商店类型的服务创建webapi。在使用我编写的一个毫无意义的类时,我遇到了一个NullReferenceException。以下是我的api代码: [HttpGet] public HttpStatusCode Get() { Item item1 = new Item("Chips", 1, false); Console.WriteLine(item1.ToString());
[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;
最后是items类:
public Items(string a){
this.name = a;
}
public string name;
public ArrayList itemCollection;
public int getSize()
{
这个想法是一个单独的项目将是一个更大的项目集合的一部分-例如,一个可乐罐将是一个饮料集合的一部分
我遇到的问题是,当我运行此代码时,它在向items arraylist添加项时遇到错误。我尝试在Get()
方法中实例化一个本地arraylist,这确实有效,但是它没有给我所需的灵活性,因此不适合。我不知道为什么会发生这个错误,我已经运行了一个if(collection is null)
检查,它不会返回null。我不知道为什么会发生这种错误,并希望得到建议
编辑:意识到我没有在items类中创建新的ArrayList(),这意味着从未创建数组列表。现在已修复。下面一行创建您的类。所以它是一个对象,并且不是空的
Items collection = new Items("a");
我没有看到你在那里实例化你的列表。在C#中,您必须先实例化它,然后才能向其添加任何项,否则它将抛出空引用
对collection.itemCollection执行空检查。它可能为空。在哪一行出现异常?请回答问题并提供堆栈跟踪。奇怪的是,为什么我所指出的向下投票正是OP所说的问题所在?