我有一个简单的问题:我有一个结构Coordinates3D,它基本上是一个3D点,但它也检查边界。它具有静态maxX和minX等成员,并检查指定的坐标值以适合边界。它还有一个布尔_check_boundaries,如果这是假的,那么它不会检查边界并允许任何坐标值。看起来基本上就像这个
struct Coordinate3D {
public bool _check_boundaries;
private int _x;
public int X{
get{ return _x;}
set {
if (_check_boundaries)
{
... check min/max ...
}
_x = value;
}
}
... y and x follow...
}
我想在propertyGrid中编辑这个对象(它是一个类的属性)。但是,有些类的坐标是有界的,有些则没有。因此,对于某些类,必须检查边界,但不能检查其他类。但是,当我在propertyGrid中更改此struct的属性时,它似乎每次都会创建一个新结构。因此,对于所有情况,它都是“检查边界”,或者对于所有情况都是“不检查边界”,具体取决于构造函数中设置的内容。
有什么方法吗?