getters setters array
本文关键字:array setters getters | 更新日期: 2023-09-27 18:27:25
可能是一个我无法解决的非常简单的问题-我从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; }
}
}
}
这永远不会奏效:
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");
}
}
在您的set方法中,您需要添加代码,以便它可以添加到特定的数组位置,除非您向它发送一个数组,如果是这样的话,那么您所拥有的应该可以工作。
如果向它发送一个字符串,则需要指定数组的位置。
Array[index] = "gdgd"
否则,它看起来像是分配给一个字符串变量,而不是数组
使用列表保存值。当您需要返回数组时,请使用List.ToArray()