C# 如何使我的game1类中的数组公开

C# 如何使我的game1类中的数组公开,c#,multidimensional-array,xna-4.0,C#,Multidimensional Array,Xna 4.0,这是我用来定义数组的代码,该代码在Initialize()之上: 公共瓷砖[,]tileray 以下是我在受保护的overide void Initialize()中声明它的代码: Tile[,]tilerray=新的Tile[gridScope,gridScope] Tile是用于表示我的游戏的Tile的类 当我尝试运行此程序时,确实会出现不一致的可访问性错误;但是,我不能将public放在声明前面,因为visual studio告诉我,public是一个无效的表达式,因为Tile需要一个 我

这是我用来定义数组的代码,该代码在Initialize()之上:
公共瓷砖[,]tileray
以下是我在受保护的overide void Initialize()中声明它的代码:
Tile[,]tilerray=新的Tile[gridScope,gridScope]

Tile是用于表示我的游戏的Tile的类

当我尝试运行此程序时,确实会出现不一致的可访问性错误;但是,我不能将public放在声明前面,因为visual studio告诉我,
public
是一个无效的表达式,因为
Tile
需要一个

我需要在其他类中引用这个数组,这样我就可以操纵平铺,但我不知道如何使它一致地公开

如何将
tilerray
公开?

initialize()
中,您不需要
tileray[,]
(这将创建一个本地版本的tilerray,它将取代您的全局版本)

i、 e


我甚至不会问您为什么要将其公开…

最好的方法是封装该方法并为数组提供get和set。默认情况下,您不希望将整个数组公开。需要更多关于您在何处声明的信息等,以便更好地回答


这两个都描述了我正在谈论的内容。

如果Tilerray不公开,我就无法访问它;我需要访问它,这样我的Tree类就可以告诉数组中的哪些分片有一棵树。即使有了您的更改,我仍然得到:错误1不一致的可访问性:字段类型“Stake\u it\u Out.Tile[,]'比字段'stack\u it\u Out.Game1.tilerray'更难访问C:\Users\OliverBarnum\Documents\Visual Studio 2010\Projects\stack Out\stack Out\Game1.cs 42 24 stack Out这与重写基类中的字段但更改其公共/私有属性的子类有关。在我看来,你似乎还没有完全掌握一些基本的OO概念,但我并不想表现得粗鲁。显然我可以;不要在没有看到代码的情况下帮助解决新错误。可怜自学成才的人吧。包含game1类,如所有xna和treeRegion类,其最后一个方法处理数组中的平铺对象。我还包括了tile类。在createTiles()中,使用本地TilerRay而不是类中的实例也有同样的问题。另外,我认为赌注应该是公开的……谢谢你,好先生;你帮了大忙。你的耐心是值得称赞的。
// This tileArray is in "class scope"
public Tile[,] tileArray;

void initialize()
{
    tileArray = new Time[gridScope, gridScope];
    ...