如何定义镜像属性以使具有相等值的类分离? 我有一个这样的课:
public abstract class Car
{
public Point3D Location { get; set; }
}
还有另外一个类:
class Motion
{
public Point3D Location {get; set;}
public Motion(Point3D location)
{
Location = location;
}
}
我希望在Car.Location更改时更新Motion.Location。这样做直到Car.Location不再续订。
car1.Location=new Point3D();
之后,这两个属性分开了。 那么我该怎么做才能保证Motion.Location值与Car.Location值相同。
答案 0 :(得分:1)
您真正要做的就是在对象级别声明一个事件,以便在属性更改时收到通知。但是你必须为Location
添加一个后端属性,以便你可以发起一个事件。
public abstract class Car
{
private Point3D _loc;
public event System.EventHandler LocationChanged;
public Point3D Location
{
get{
return _loc;
}
set; {
_loc = value;
if ( LocationChanged != null )
{
LocationChanged( this, new EventArgs() );
}
}
}
}
答案 1 :(得分:0)
类没有值。类的实例具有值。你不是在这里创建Car或Motion的实例,所以没有什么可以绑定的。如果有实例,你可以让car.location的setter更新动作实例的位置值(从代码中不清楚该实例的来源)