常量基于变量?

时间:2011-04-29 17:53:48

标签: c# arrays variables xna constants

我现在正在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 个答案:

答案 0 :(得分:4)

你做不到。将其设为public static readonly int

答案 1 :(得分:1)

您不能创建常量,但可以将其设为只读

public readonly int intBoardheight = ...

readonly变量只能在声明或构造函数中指定。之后就无法改变。

答案 2 :(得分:1)

因为它是可变的 - 基于运行应用程序时的当前分辨率 - 你不能使它成为编译时常量,但你可以使它成为readonly