C# 私有setter不阻止更改数组元素
在我的代码中,在主窗口类中,我有一个数组:C# 私有setter不阻止更改数组元素,c#,setter,C#,Setter,在我的代码中,在主窗口类中,我有一个数组: public TextBox[,] Letterbox { get; private set; } = new TextBox[4, 4]; 在另一节课上,我试着 my_main_window.Letterbox[1, 1] = null; 而且效果很好。我希望数组能够被其他类读取,而不是写入。我应该怎么做?回答:信箱作为一个属性,是一个数组属性。代码正确地阻止您设置新值。。。。对于数组 但是,任何可以访问该数组的用户都可以对该数组执行任何操作 要
public TextBox[,] Letterbox { get; private set; } = new TextBox[4, 4];
在另一节课上,我试着
my_main_window.Letterbox[1, 1] = null;
而且效果很好。我希望数组能够被其他类读取,而不是写入。我应该怎么做?回答:信箱作为一个属性,是一个数组属性。代码正确地阻止您设置新值。。。。对于数组 但是,任何可以访问该数组的用户都可以对该数组执行任何操作 要做你打算做的事情,你需要一个
(您仍然需要某种方式来设置它,但这就是您创建所需构造的方式。)在您的情况下,
private set
意味着您不能将TextBox[,]
的另一个实例设置为lettbox
属性,但可以设置他的元素。因此,我建议您使用someReadOnlyCollection
。
public class LetterBox
{
private TextBox[,] array = new TextBox[4, 4];
public TextBox this[int x, int y]
{
get
{
return array[x, y];
}
}
}