在列表框中插入列表
本文关键字:列表 插入列 插入 | 更新日期: 2023-09-27 18:03:47
我是c#的新手,我正在尝试在c#中探索,但是我尝试在列表框中添加列表。
我遇到的错误是:Object reference not set to an instance of an object.
知道怎么解决这个问题吗?
namespace WindowsFormsApplication
{
public partial class Form1 : Form
{
something a = something iets();
public Form1()
{
InitializeComponent();
}
// part1
class something {
public List<string> testing { get ; set; }
}
// part2
private void button1_Click(object sender, EventArgs e)
{
a.testing.Add("programming");
a.testing.Add("over");
a.testing.Add("something");
foreach (string i in a.testing)
{ listBox1.Items.Add(i); }
}
}
}
您必须在访问testing
之前的某个时刻初始化它。
也许你可以给something类添加一个构造函数。
public something()
{
testing = new List<string>();
}
和上面的注释所指出的,替换
something a = something iets();
something a = new something(); //this should be the correct thing.
我认为你得到NullReferenceException
的原因是something
类中的字符串列表未初始化。您可以定义一个无参数构造函数并在其中初始化列表。
public something()
{
testing = new List<string>();
}
您可能还想知道类名和属性名的第一个字母通常是大写的(例如,class Something
而不是class something
)。
此外,您可以使用AddRange
方法,而不是在foreach循环中逐个添加字符串。
listbox1.Items.AddRange(a.testing.ToArray());
你的类"something"从未初始化List。你应该这样做。
class something{
private List<string> _list;
public something(){
_list = new List<string>();
}
public List<string> testing {get{return _list;} set{_list = value;}}
}
或者在a.testing. add()行之前执行a.testing = new List();