我正在尝试创建一个应该在其代码中包含这些变量的新类:
class Map
{
// Variable declaration
public int Width { get; set; } // Width of map in tiles
public int Height { get; set; } // Height of map in tiles
public int TileWidth { get; set; }
public int TileHeight { get; set; }
}
但出于某种原因,在Game1.cs中创建一个新的Map类之后,我似乎无法理解宽度和高度等内容。
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
public static SpriteBatch spriteBatch;
// etc...
// Class initialization
Map map = new Map();
map.Width = 10; // Won't work, says it is a 'field' but used like a 'type'
}
我认为我不是想设置这个属性,但我不确定如何实际操作。
尝试上述操作时出现两条错误消息:
'Deep.Game1.Map'是一个'字段',但用作“类型”
和
类,结构或接口成员声明中的标记'='无效
答案 0 :(得分:7)
您尚未将该代码放在可执行代码块中。你不能只在一个类型内部浮动一个属性设置器;它需要在方法,构造函数等中。
如果要在初始化字段时设置宽度,则可以使用对象初始值设定项语法:
private Map map = new Map() {Width = 10};
答案 1 :(得分:3)
这有效:
void Main()
{
Map map = new Map();
map.Width = 10;
}
class Map
{
public int Width { get; set; } // Width of map in tiles
public int Height { get; set; } // Height of map in tiles
public int TileWidth { get; set; }
public int TileHeight { get; set; }
}
也许你某处遗失了;
或}
。
答案 2 :(得分:1)
我无法确定,但看起来您可能正在尝试在方法之外设置属性。试试这个:
class Game1
{
Map map = new Map();
public Game1()
{
map.Width = 10;
}
}
答案 3 :(得分:0)
是否在函数内设置Width
属性的代码?它需要。如果不是,你会看到这个错误。
也不确定这条线是否输入正确,但它缺少一个分号:
map.Width = 10