我想在对象初始值设定项内引用对象的属性。问题是这个变量还不存在,所以我不能像普通的(object.method)那样引用它。我不知道在对象初始化期间是否有关键字引用创建中的对象。访问C#对象初始值设定项内的属性读取值
当我编译下面的代码时,我得到错误 - 名称'宽度'在上下文中不存在。我明白为什么我得到这个错误,但我的问题是:有没有任何语法来做到这一点?
public class Square
{
public float Width { get; set; }
public float Height { get; set; }
public float Area { get { return Width * Height; } }
public Vector2 Pos { get; set; }
public Square() { }
public Square(int width, int height) { Width = width; Height = height; }
}
Square mySquare = new Square(5,4)
{
Pos = new Vector2(Width, Height) * Area
};
我想根据“mySquare”来引用属性“宽度”,“高度”和“区域”。
看代码,因为它使用的是'Square'实例的内部状态设定它应该是一个只读属性。你怎么看? – shahkalpesh 2011-05-02 07:16:05
这只是一个愚蠢的例子,我展示了我的想法。根据班级的目的,我会说你可能是正确的,但我很可能不会创建一个班级有一个不可变的方形:) – 2011-05-02 07:18:42
我建议使用只读属性的'矢量'而不是'方形'。 – shahkalpesh 2011-05-02 07:20:31