Как сделать массив в моем классе game1 публичным - PullRequest
0 голосов
/ 28 марта 2012

Вот код, который я использую для определения моего массива, этот код выше моего Initialize (): public Tile[,] tileArray; Вот мой код в моем защищенном overide void Initialize (), который объявляет его: Tile[,] tileArray = new Tile[gridScope, gridScope];

Tile - это класс, используемый для представления плитки для моей игры.

Я получаю непоследовательную ошибку доступности, когда пытаюсь запустить ее;Я не могу, однако, выставить public перед объявлением, потому что тогда Visual Studio сообщает мне, что public является недопустимым выражением, в то время как Tile ожидает ;.

Мне нужно сослаться на этомассив в других классах, так что я могу манипулировать плитками, но я не знаю, как сделать его последовательно публичным.

Как сделать tileArray публичным?

Ответы [ 2 ]

1 голос
/ 28 марта 2012

in initialize() вам не нужно Tile[,] (это создаст локальную версию tileArray, которая будет использоваться вместо вашей глобальной).

т.е.

// This tileArray is in "class scope"
public Tile[,] tileArray;

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

Я даже не буду спрашивать, почему вы хотите, чтобы это было публично ...

0 голосов
/ 28 марта 2012

Лучший способ сделать это - инкапсулировать метод и предоставить для массива значения get и set.Вы не хотите делать весь массив открытым по умолчанию.Чтобы получить более точный ответ, потребуется дополнительная информация о том, где вы его объявляете и т. Д.

http://www.c -sharpcorner.com / UploadFile / ggaganesh / EncapsulationInCS11082005064310AM / EncapsulationInCS.aspx

http://msdn.microsoft.com/en-us/library/dd460654.aspx

Оба они описывают то, о чем я говорю.

...