nih*_*hit 2 c# visual-studio-2010 nullreferenceexception sfml
当我在调试模式下运行我的程序时,它会在非空的对象上弹出NullReferenceException - 它显示为Locals视图中定义的.有问题的对象是SFML.Graphics.Sprite,其中只有一个字段为null(myInverseTransform),但是当我检查其他Sprite时,它们也是null.
有谁知道是什么导致这种情况,或者我怎样才能找到异常引用的空对象是什么?
相关代码:
这是代码:
(在雪碧:)
public void Draw(RenderTarget target, RenderStates states)
{
states.Transform *= Transform;
RenderStates.MarshalData marshaledStates = states.Marshal();
if (target is RenderWindow)
{
sfRenderWindow_drawSprite(((RenderWindow)target).CPointer, CPointer, ref marshaledStates);
}
else if (target is RenderTexture)
{
sfRenderTexture_drawSprite(((RenderTexture)target).CPointer, CPointer, ref marshaledStates);
}
}
Run Code Online (Sandbox Code Playgroud)
(在变换:)
public static Transform operator *(Transform left, Transform right)
{
return new Transform(left).Combine(right);
}
public Transform Combine(Transform transform)
{
sfTransform_combine(CPointer, transform.CPointer);
return this;
}
else if (target is RenderTexture)
{
sfRenderTexture_drawSprite(((RenderTexture)target).CPointer, CPointer, ref marshaledStates);
}
}
Run Code Online (Sandbox Code Playgroud)
在调用Sprite.Draw时调整this.Transform的问题(根据Locals视图),但在Transform的*运算符中,右变量为null;
它没有声称您的变量值为空.(一个对象不能为null - 虽然变量可以有一个空值.这有很大的不同.)它只是说NullReferenceException发生了一个.例如,它可能是SFML库中的错误.您应该查看堆栈跟踪以找出抛出异常的确切位置,然后从那里开始.
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |