如何检查Point3d是否为空?

时间:2015-03-02 14:42:47

标签: c# null nullable autocad autocad-plugin

我的方法是......

Autodesk.AutoCAD.Geometry.Point3d point = null;

但我似乎无法将Point3d设置为null

有谁可以告诉我为什么以及如何检查Point3d是否null

Point3D我的意思是Autodesk.AutoCAD.Geometry.Point3d

5 个答案:

答案 0 :(得分:4)

Autocad Point3dstruct。因此它不能为空,总是有一个值。

最多可以测试无效数字。可能存在要测试的Point3d.Empty静态属性。

如果您希望它能够null,请使用Point3d?使struct可以为空(通过将其包裹在Nullable<T>中。

答案 1 :(得分:0)

Point3d不是类,而是结构,因此它永远不会为null。但您可以使用默认值为(0,0,0)的事实。所以你可以检查它是否等于零。

答案 2 :(得分:0)

Point3D是一个结构,而不是一个类。 C#中的结构不能具有空值。 如果您需要使用可能是Point3D的类型或者可能为null,则应使用Nullable<Point3D>Point3D?

阅读本页以了解结构和类之间的差异:Choosing Between Class and Struct

答案 3 :(得分:0)

由于Point3dstruct,因此不能是null。但是,可以创建一个Nullable<Point3d>对象,可以null

Point3d? point = null;

但是,现在你必须使用一些稍微复杂的语义与它进行交互:

if (point.HasValue) {
    // do something with point.Value, which is a Point3d
} else {
    // handle point == null
}

答案 4 :(得分:0)

检查的典型方法是查看点== Point3d.Origin。