我正在尝试将我创建的Customer类型的对象添加到Windows窗体中的ListBox,但我的Customer类的Equals方法抛出NullReferenceException。
这是(我的客户类的简化版本):
$ne : [$var_to_check, undefined]
以下是我尝试将Customer对象添加到ListBox的方法:
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Customer( string firstName, string lastName )
{
FirstName = firstName;
LastName = lastName;
}
public override string ToString()
{
return this.LastName;
}
public override bool Equals( object obj )
{
Customer p = obj as Customer;
return this.FirstName.Equals( p.FirstName ) && this.LastName.Equals( p.LastName );
}
}
向ListBox添加新项目时,会触发项目的“等于”,如下所述:why listbox1.Items.Add use Equals Method of my Object?。
我可以通过在Customer类的Equals方法中捕获NullReferenceException来轻松解决这个问题,但这是我没有得到的:
为什么ListBox使用null对象作为参数调用private void addCustomerButton_Click( object sender, EventArgs e )
{
checkedListBox1.Items.Add(new Customer( customerFirstNameTextBox.Text, customerLastNameTextBox.Text ));
}
方法?