在构造函数中创建的对象变为null

Luc*_*asP 2 c# null object

我是一名新手程序员,我需要一些帮助来理解错误.我创建了一个对象,其中构造函数我创建了我的玩家.但是,只要我完成构造函数,所有在另一个内部的对象都是null.对象是否无法创建对象?如果不是,我如何设计我的程序,以便我可以从任何课程访问我的播放器对象.

class Program
{
    static void Main(string[] args)
    {
        Tablero tablero = new Tablero();
        tablero.test();    //now Tablero doesnt have player
        Console.ReadLine();
    }

    public class Tablero
    {
        Buscador busc1;
        public Tablero()
        {
            Buscador busc1 = new Buscador(50);
            //test();       same problem
        }
        public void test()
        {
            Console.Write(busc1.getPosX());
        }
    }

    public class Buscador
    {
        int posx;
        public Buscador(int posx)
        {
            this.posx = posx;
        }
        public int getPosX()
        {
            return posx;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 12

您已Buscador busc1;在类的主体中定义,而不是:

Buscador busc1 = new Buscador(50);
Run Code Online (Sandbox Code Playgroud)

简单地写

busc1 = new Buscador(50);
Run Code Online (Sandbox Code Playgroud)

通过执行第一个,您要说的是您要在实例化它的方法中创建一个Buscador实例.因此,一旦方法结束并且无法从任何其他方法访问它,它将被删除.

Buscador busc1;在Tablero()构造函数外部定义的可以被整个类中的任何方法访问.

有关范围界定,请参阅此MSDN文章:

http://msdn.microsoft.com/en-us/library/ms973875.aspx