C#类中的公共变量

本文关键字:变量 | 更新日期: 2023-09-27 18:27:49

我有一个类,它的构造函数中声明了一个2D锯齿状数组,在这个类中,我有两个名为GetXY和SetXY的方法,它们修改了所述数组。

然而,我不确定我是应该使用这些方法,还是实际上将网格声明为公共,这意味着有两种方法可以设置和读取数组中的值,如下所示:

    ProceduralGrid pg = new ProceduralGrid(10, 10);
    pg.grid[0][0] = 2;
    pg.SetXY(0, 0, 2);

我应该用哪一个,为什么?

C#类中的公共变量

为什么不使用

    public T this[int x, int y]
    {
        get
        {
            return grid[x][y];
        }
        set
        {
            grid[x][y] = value;
        }
    }

自然检查有效的x和y等…

使用方法访问数组。SetXY或Alessandro建议的索引器。这样,以后就可以在不更改类接口的情况下更改实现。

最好使用方法来设置内部使用的变量。

通过这种方式,您可以保护内部对象,并可以根据需要自由地实现额外的验证或修改对象。

这使您以后可以轻松地更改该对象的行为。