c# – 添加导航:Frame导致NullReferenceException

前端之家收集整理的这篇文章主要介绍了c# – 添加导航:Frame导致NullReferenceException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Silverlight 5构建一个3D应用程序.我有一个调用方法的DrawingSurface.但是,当我向我的XAML添加导航:Frame时,我会抛出一个错误.

这是有问题的方法

private void DrawingSurface_Draw(object sender,DrawEventArgs e)
{

    GraphicsDevice device = GraphicsDeviceManager.Current.GraphicsDevice;

    device.Clear(ClearOptions.Target | ClearOptions.DepthBuffer,new Microsoft.Xna.Framework.Color(0,0),10.0f,0);

    device.SetVertexBuffer(_vertexBuffer);
    device.SetVertexShader(_vertexShader);
    device.SetPixelShader(_pixelShader);
    device.Textures[0] = _texture;

    device.SamplerStates[0] = SamplerState.LinearClamp;
    device.DrawPrimitives(PrimitiveType.TriangleList,_vertexBuffer.VertexCount / 3);
    device.SetVertexShaderConstantFloat4(0,ref _viewProjection);

    e.InvalidateSurface();

}

错误发生在line device.DrawPrimitives(PrimitiveType.TriangleList,_vertexBuffer.VertexCount / 3); .错误是“NullReferenceException未被用户代码处理”.没有导航就不会发生:框架.

解决方法

从这段代码中我们可以得出的唯一结论是,当您输入此方法时,“vertexBuffer”为空或null.通过“DrawPrimitive”方法在本地使用的那些或一些变量.

我不知道如何填充这个变量,但总的来说,当你不是100%确定提前填充的东西时,总是检查null或空是一个好习惯.

猜你在找的C#相关文章