可能是一个我无法修复的非常简单的问题 - 我开始使用C#并且需要使用getter / setter方法向数组中添加值,例如:
public partial class Form1 : Form
{
string[] array = new string[] { "just","putting","something","inside","the","array"};
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Array = "gdgd";
}
public string[] Array
{
get { return array; }
set { array = value; }
}
}
}
答案 0 :(得分:10)
这永远不会起作用:
Array = "gdgd";
那是尝试为string
属性分配string[]
值。请注意,无论如何都无法在数组中添加或删除元素,因为一旦创建它们,大小就会被修复。也许您应该使用List<string>
代替:
public partial class Form1 : Form
{
List<string> list = new List<string> {
"just", "putting", "something", "inside", "the", "list"
};
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
List.Add("gdgd");
}
public List<string> List
{
get { return list; }
set { list = value; }
}
}
请注意,无论如何,让公共财产无关紧要,因为您正在同一个班级中访问它 - 您可以使用以下字段:
private void button1_Click(object sender, EventArgs e)
{
list.Add("gdgd");
}
另请注意,对于像这样的“普通”属性,您可以使用自动实现的属性:
public partial class Form1 : Form
{
public List<string> List { get; set; }
public Form1()
{
InitializeComponent();
List = new List<string> {
"just", "putting", "something", "inside", "the", "list"
};
}
private void button1_Click(object sender, EventArgs e)
{
List.Add("gdgd");
}
}
答案 1 :(得分:1)
如果你发送一个字符串,就像你需要指定数组位置一样。
Array[index] = "gdgd"
否则看起来你正在分配一个字符串变量而不是一个数组
答案 2 :(得分:0)
使用列表来保存值。当您需要返回数组时,请使用List.ToArray()