无法访问公共类属性
本文关键字:属性 访问 | 更新日期: 2023-09-27 18:36:23
>我正在尝试创建一个新类,该类应该在其代码中包含以下变量:
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"是一个"字段",但像"类型"一样使用
和
类、结构或接口成员声明中的标记"="无效
您尚未将该代码放在可执行代码块中。 不能只在类型中浮动属性资源库;它需要位于方法、构造函数等内部。
如果要在初始化字段时设置宽度,则可以使用对象初始值设定项语法:
private Map map = new Map() {Width = 10};
这有效:
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; }
}
也许你在某处缺少;
或}
。
我
不能确定,但看起来您可能正在尝试在方法之外设置属性。试试这个:
class Game1
{
Map map = new Map();
public Game1()
{
map.Width = 10;
}
}
设置Width
属性的代码是否在函数内部?它必须是。如果不是,您将看到此错误。
也不确定这一行是否正确输入,但它缺少分号:
map.Width = 10