我是一名新手程序员,我需要一些帮助来理解错误.我创建了一个对象,其中构造函数我创建了我的玩家.但是,只要我完成构造函数,所有在另一个内部的对象都是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