【发布时间】:2019-09-03 10:39:28
【问题描述】:
我有以下具有自动属性的类:
class Coordinates
{
public Coordinates(int x, int y)
{
X = x * 10;
Y = y * 10;
}
public int X { get; set; }
public int Y { get; set; }
}
从构造函数中可以看出,我需要将值乘以 10。 有没有办法在不删除自动属性的情况下做到这一点?
我尝试了以下操作,没想到它会导致递归,然后一切都变得很糟糕
public int X { get {return X;} set{ X *= 10;} }
我想给 X 和 Y 赋值乘以 10。
Coordinates coords = new Coordinates(5, 6); // coords.X = 50 coords.Y = 60
coords.X = 7; // this gives 7 to X but I would like it to be 70.
【问题讨论】:
-
我不明白您所说的“有没有办法在不删除自动属性的情况下做到这一点?”您不会通过在构造函数中设置初始值来删除任何内容。
-
有什么问题?您的 original 代码运行良好。您是否想在 setter 中存储一个 不同的 值?
-
"从构造函数中可以看出,我需要将值乘以 10。"在施工?还是每次设置?目前尚不清楚您要达到的目标 - 请澄清。
-
刚刚编辑。我希望它澄清
-
试试,私有 int x; public int X { get {return x;} set{ x = value * 10;} }
标签: c# coordinates automatic-properties