在调试时,我的程序崩溃并出现错误,指出存在空引用。奇怪的是,在它崩溃的那一行上,它正在另一个静态类中运行一个方法,并且其中一个参数填充了“this”,这应该意味着它正在提供正在执行调用的对象,但是当我将鼠标悬停在“this”上时,它不是调用对象,而是不同类类型的完全不同的对象。
有没有人知道或有任何解释如何使用“this”可能使“this”成为一个甚至与调用类不同类型的对象?
这是有问题的方法。
public void UpdateLight()
{ DoUpdateLight(); }
protected virtual void DoUpdateLight()
{
if (isActive)
{
Systems.Lighting.Instance.SetSpotLight(
this,
(int)(owner.GetEyeHeight - owner.GetHeight * 0.25f),
lightRange,
owner.visionAngleHorizontal,
owner.visionAngleVertical,
owner.GetGridNumber,
owner.parentFloor.floorLevel,
lightStrength,
lightDecay,
lightMaxTiles,
800);
RemoveLights();
litObjectsPrev = litObjects;
litObjects = new List<ILightable>();
}
}