如何检查 Point3d 是否不为空?
How do I check if Point3d is not null?
我的方法是...
Autodesk.AutoCAD.Geometry.Point3d point = null;
但我似乎无法将 Point3d
设置为 null
。
谁能告诉我为什么以及如何检查 Point3d
是否为 null
?
(Point3D
我的意思是 Autodesk.AutoCAD.Geometry.Point3d
)
Autocad Point3d
是 struct
。因此它不能为空,它总是有一个值。
至多,你可以测试它是否有无效数字。可能有一个 Point3d.Empty
static 属性 来测试。
如果您希望它能够成为 null
,请使用 Point3d?
使 struct
可为空(通过将其包装在 Nullable<T>
.
Point3d
不是 class 而是一个结构,因此它永远不会为空。但是您可以使用默认值为 (0, 0, 0) 的事实。所以你可以检查它是否等于零。
Point3D
是一个结构,而不是 class。
C# 中的结构不能有空值。
如果您需要使用可能是 Point3D 或可能为 null 的类型,则应使用 Nullable<Point3D>
或 Point3D?
阅读此页面以了解结构与 classes 之间的区别:Choosing Between Class and Struct
因为 Point3d
是 struct
,所以不能是 null
。然而,您可以创建一个Nullable<Point3d>
对象,可以是null
:
Point3d? point = null;
但是,现在您必须使用一些稍微复杂的语义与它交互:
if (point.HasValue) {
// do something with point.Value, which is a Point3d
} else {
// handle point == null
}
典型的检查方法是查看点是否== Point3d.Origin。
我的方法是...
Autodesk.AutoCAD.Geometry.Point3d point = null;
但我似乎无法将 Point3d
设置为 null
。
谁能告诉我为什么以及如何检查 Point3d
是否为 null
?
(Point3D
我的意思是 Autodesk.AutoCAD.Geometry.Point3d
)
Autocad Point3d
是 struct
。因此它不能为空,它总是有一个值。
至多,你可以测试它是否有无效数字。可能有一个 Point3d.Empty
static 属性 来测试。
如果您希望它能够成为 null
,请使用 Point3d?
使 struct
可为空(通过将其包装在 Nullable<T>
.
Point3d
不是 class 而是一个结构,因此它永远不会为空。但是您可以使用默认值为 (0, 0, 0) 的事实。所以你可以检查它是否等于零。
Point3D
是一个结构,而不是 class。
C# 中的结构不能有空值。
如果您需要使用可能是 Point3D 或可能为 null 的类型,则应使用 Nullable<Point3D>
或 Point3D?
阅读此页面以了解结构与 classes 之间的区别:Choosing Between Class and Struct
因为 Point3d
是 struct
,所以不能是 null
。然而,您可以创建一个Nullable<Point3d>
对象,可以是null
:
Point3d? point = null;
但是,现在您必须使用一些稍微复杂的语义与它交互:
if (point.HasValue) {
// do something with point.Value, which is a Point3d
} else {
// handle point == null
}
典型的检查方法是查看点是否== Point3d.Origin。