我有一个结构(为了这个问题的目的)几乎模仿内置Point类型.
我需要在使用之前检查它是否已经实例化.什么时候Point,我可以这样做:
if (this.p == null)
Run Code Online (Sandbox Code Playgroud)
但现在生成以下错误:
运算符'=='不能应用于'ProportionPoint'和'<null>类型的操作数
如何将我的结构与null进行比较?还有另一种检查实例化的方法吗?
Raw*_*ing 38
A struct是值类型 - 它永远不会为null.
您可以检查default(ProportionPoint),这是结构的默认值(例如,零).但是,对于某一点,可能是默认值 - 原点 - 也是"有效"值.
相反,你可以使用Nullable<ProportionPoint>.
Dar*_*rov 18
结构是值类型,与引用类型相反,它们永远不能为null.您可以检查默认值:
if (this.p.Equals(default(ProportionPoint)))
Run Code Online (Sandbox Code Playgroud)
结构体不能为 null。它是值类型,而不是引用类型。您需要检查具有默认值的属性。就像是:
if(p.X == 0 && p.Y == 0)
Run Code Online (Sandbox Code Playgroud)
使用可为空的:
ProportionPoint? p1 = null;
if (p1 == null) ...
Run Code Online (Sandbox Code Playgroud)
或者
if (!p1.HasValue) ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41807 次 |
| 最近记录: |