Постоянная в зависимости от переменной? - PullRequest
0 голосов
/ 29 апреля 2011

Сейчас я делаю небольшую игру в XNA.

И я хочу, чтобы размер массива был основан на разрешении моего экрана.

Я сделал это так:

public const int intBoardheight = (GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height -150) / 10 ;
public const int intBoardwidth = (GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width - 200) / 10;

public bool[,] GameBoard = new bool[intBoardheight,intBoardwidth];
public bool[,] GameBoardUpdate = new bool[intBoardheight, intBoardwidth];
public int[,] GameBoardInt = new int[intBoardheight, intBoardwidth];

Но это дает мне ошибку «Выражение, присваиваемое« Game_Of_Life_2.Game1.intBoardheight »должно быть постоянным».

Итак, как мне основать константу на переменной?

Заранее спасибо!

Саймон.

РЕДАКТИРОВАТЬ: Спасибо, ребята!Сработало очень хорошо!

Ответы [ 3 ]

4 голосов
/ 29 апреля 2011

Вы не можете.Сделать это public static readonly int

1 голос
/ 29 апреля 2011

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

1 голос
/ 29 апреля 2011

Вы не можете создать константу, но вы можете сделать ее доступной только для чтения.

public readonly int intBoardheight = ...

Переменная readonly может быть назначена только в объявлении или в конструкторе.После этого невозможно изменить.

...