c# NullReferenceException未处理-对象引用未设置为对象的实例
本文关键字:对象 实例 设置 NullReferenceException 未处理 对象引用 | 更新日期: 2023-09-27 18:01:27
我试图在c#中使用Windows窗体创建一个应用程序,但是我一直得到一个错误陈述:
NullReferenceException是未处理的-对象引用未设置为对象的实例
它指向有这个代码的行:
carBootSaleList.AddCarBootSale(newCarBootSale);
我在表单界面上的方法:
CarBootSaleList carBootSaleList;
public void AddCarBootSale()
{
AddNewCarBootSale addForm = new AddNewCarBootSale();
if (addForm.ShowDialog() == DialogResult.OK)
{
CarBootSale newCarBootSale = addForm.GetCarBootSaleData();
carBootSaleList.AddCarBootSale(newCarBootSale);
txtCarBootSale.Clear();
txtCarBootSale.Text = newCarBootSale.Display();
}
}
CarBootSaleList类:
public class CarBootSaleList : IDisplay
{
private List<CarBootSale> carbootsales;
public CarBootSaleList()
{
carbootsales = new List<CarBootSale>();
}
public bool AddCarBootSale(CarBootSale carbootsale)
{
bool success = true;
foreach (CarBootSale cbs in carbootsales)
{
if (cbs.ID == carbootsale.ID)
{
success = false;
}
}
if (success)
{
carbootsales.Add(carbootsale);
}
return success;
}
public int GetListSize()
{
return carbootsales.Count();
}
//public CarBootSale FindCarBootSale(string cbsID)
//{
// CarBootSale carbootsale = null;
// foreach (CarBootSale cbs in carbootsale)
// {
// if (cbs.ID == cbsID)
// {
// carbootsale = cbs;
// }
// }
// return carbootsale;
//}
public List<CarBootSale> ReturnList()
{
return carbootsales;
}
public string Display()
{
string msg = "";
foreach (CarBootSale cbs in carbootsales)
{
msg += String.Format("{0} {1}", cbs.ID, cbs.Location, cbs.Date);
msg += Environment.NewLine;
}
return msg;
}
}
CarBootSale类:
public class CarBootSale : IDisplay
{
public string ID { get; set; }
public string Date { get; set; }
public string Location { get; set; }
public double PitchCost { get; set; }
public int Capacity { get; set; }
public string Charity { get; set; }
public string CharityName { get; set; }
public string Catering { get; set; }
public CarBootSale(string id, string date, string location, double pitchcost, int capacity, string charity, string charityname, string catering)
{
ID = id;
Date = date;
Location = location;
PitchCost = pitchcost;
Capacity = capacity;
Charity = charity;
CharityName = charityname;
Catering = catering;
}
public CarBootSale() { }
public override string ToString()
{
return String.Format("{0} {1}", ID, Date, Location);
}
public string Display()
{
string msg;
string CR = Environment.NewLine;
msg = String.Format("ID: {0} {1}", ID, CR);
msg += String.Format(" Date: {0} {1}", Date, CR);
msg += String.Format(" Location: {0} {1}", Location, CR);
msg += String.Format(" Pitch Cost: {0} {1}", PitchCost, CR);
msg += String.Format(" Capacity: {0} {1}", Capacity, CR);
msg += String.Format(" Charity: {0} {1}", Charity, CR);
msg += String.Format(" CharityName: {0} {1}", CharityName, CR);
msg += String.Format(" Catering: {0} {1}", Catering, CR);
return msg;
}
}
变量carBootSaleList
没有初始化,因此它是null
。
尝试替换
CarBootSaleList carBootSaleList;
CarBootSaleList carBootSaleList = new CarBootSaleList();
您还没有在代码的任何地方初始化carBootSaleList
。
可以在方法中实例化,也可以在声明中实例化。
CarBootSaleList carBootSaleList = new CarBootSaleList();
您没有初始化carBootSaleList。
CarBootSaleList carBootSaleList = new carBootSaleList();
carBootSaleList为空。
在某处,键入:
carBootSaleList = new CarBootSaleList();