在我的 UI 类中,开发人员可以选择定义位置属性(System.Drawing.Point 类型)。默认情况下,此属性初始化为 Point.Empty。类封装的内部代码使用 Point 属性的 .IsEmpty 来确定是否已设置位置。如果该属性不为空,则将使用 x/y 值。如果为空,代码将尝试使用行/列算法放置它。
我的问题:
我正在使用该属性的 .IsEmpty 来确定它是否已设置。令我惊讶的是,如果开发人员将属性设置为 0,0,它会显示为 Empty。点 0,0 在图形中有效。我也理解为什么 .IsEmpty 为 0,0 值返回 true。
1) 没有创建我自己的类或从 System.Drawing.Point 继承,有没有办法知道是否设置了属性?
我能想到的唯一想法是将属性默认为“new Point(-1,-1)”并对此进行测试。有没有更好的办法?如果不是,请确认。
我在 Visual Studio 2005 和 Visual Studio 2008 中使用 C#
谢谢!
最佳答案
有几种方法:
IE。任何一个:
public Point? Location { ... }
或者:
public Point Location
{
get ...
set
{
_LocationSet = true;
_Location = value;
}
}
关于c# - .NET Point.IsEmpty 与 IsDefined,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1773232/