NullReferenceException调用类函数c#时

时间:2014-07-18 08:58:45

标签: c# class nullreferenceexception

当我尝试调用此函数时,我得到NullreferenceException,如果代码看起来很奇怪,因为我正在从c ++转换为c#。

public class MyPlayer_t
{
    int pLocal;
    public int Team;
    public int Health;
    public float[] Position = new float[3];

    public void ReadInformation()
    {
        pLocal = Mem.ReadInt(Client + playerBase);
        Team = Mem.ReadInt(pLocal + teamOffset);
        Health = Mem.ReadInt(pLocal + healthOffset);
        for (int i = 0; i < 3; i++)
        {
            Position[i] = Mem.ReadFloat(pLocal + Pos);
        }
    }
}

MyPlayer_t MyPlayer;

// This is how I call it
MyPlayer.ReadInformation();

3 个答案:

答案 0 :(得分:2)

您必须使用new关键字创建类的对象/实例:

 MyPlayer_t MyPlayer = new MyPlayer_t();
 MyPlayer.ReadInformation();

以下是MSDN Reference来了解C#中的类。

答案 1 :(得分:2)

尝试创建实例,然后调用它。

var player = new MyPlayer_t();
player.ReadInformation();

如果您想按照自己的建议进行实际调用,则该课程必须为static,请参阅以下C# static vs instance methods

答案 2 :(得分:1)

这是合理的。您首先要创建该类的实例。如下所示:

MyPlayer_t myPlayer = new MyPlayer_t();

然后您可以将其称为ReadInformation的方法,如下所示:

myPlayer.ReadInformation();

您收到此错误的原因是这行代码

MyPlayer_t MyPlayer;

创建一个可以容纳名为MyPlayer_t的对象的变量。由于您没有为此变量分配值,因此它会获得默认值null。然后尝试在名为ReadInformation的变量中存储的类型上调用名为MyPlayer的方法。但是,由于MyPlayernull,您会收到此异常。