【发布时间】:2014-06-15 17:01:33
【问题描述】:
我有一条简单的线
if (currentClip.DynamicSpeed != null)
currentClip 是我自己的数据类型,而 DynamicSpeed 是一个自定义类型,其中包含少量字符串和浮点变量。
在这种情况下,currentClip 是对象并且表示 DynamicSpeed 为空。但是,我仍然从这一行得到一个 NullReferenceException。此外,堆栈跟踪似乎指向正确的行以及异常的来源(一些解决方案表明它们可能是错误的,并且还有其他解决方案)。
什么可能导致这种情况。 != 运算符也没有重载。
[编辑] 这里是相关的类。
public class Clip2D
{
public string Name;
[ContentSerializer(Optional = true)]
public bool FlipX;
[ContentSerializer(Optional = true)]
public bool FlipY;
[ContentSerializer(Optional = true)]
public string NextClip;
[ContentSerializer(Optional = true)]
public string PreviousClip;
[ContentSerializer(Optional = true)]
public DynamicSpeed DynamicSpeed;
}
public class DynamicSpeed
{
public string AffectingVariable;
public float MinSpeed;
public float MaxSpeed;
public float MinValue;
public float MaxValue;
}
应该注意,它并不总是扔掉它。
【问题讨论】:
-
您是否检查过以确保
currentClip也不为空? -
试试
if (currentClip != null && currentClip.DynamicSpeed != null) -
调试器显示 currentClip 不为空,它填充了其他字段,DynamicSpeed 是唯一的空字段。
-
DynamicSpeed 也没有吸气剂。