在我的代码中,在主窗口类中,我有一个数组:
public TextBox[,] Letterbox { get; private set; } = new TextBox[4, 4];
在其他课程中,我尝试做
my_main_window.Letterbox[1, 1] = null;
它工作得很好。我希望数组可以读取,但不能写入其他类。我该怎么办?
答案 0 :(得分:3)
答案:Letterbox作为属性,是一个数组属性。该代码正确地阻止您为数组设置新值....
但是,任何可以访问该数组的东西都可以随心所欲地使用该数组。
要执行您打算执行的操作,您需要indexer。
public class LetterBox
{
private TextBox[,] array = new TextBox[4, 4];
public TextBox this[int x, int y]
{
get
{
return array[x, y];
}
}
}
(你仍然需要某种方式来设置它,但这就是你如何制作你正在寻找的构造。)