为了账号安全,请及时绑定邮箱和手机立即绑定

在控制台应用程序中我在main函数外声明了一个对象,在类中为什么不能取到?

在控制台应用程序中我在main函数外声明了一个对象,在类中为什么不能取到?

狐的传说 2018-11-05 10:05:28
class Program {   Data1[] a;  public void getdata()  {   a = new Data1[3];   for (int i = 0; i < 3; i++)   {    a[i] = new Data1();    a[i].aa = i;   }     }  public void outdata()  {   Program x = new Program();   x.getdata();      Console.WriteLine(a.Length.ToString());  }  static void Main(string[] args)  {   Program x = new Program();   x.outdata();   Console.Read();  } } public class Data1 {  public int aa; }这个程序出错,说是未将对象a引用到实例,为什么我取不到a呢?明明我在main之外声明的对象a这能说明什么机制啊?谁能帮帮我,我搞不明白!
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

  public void outdata()
  {
   Program x = new Program();
   x.getdata();   
   Console.WriteLine(a.Length.ToString());
  }

这里你只是给 x实例里的a赋值,并没有给当前对象里的a赋值。

  public void outdata()
  {
   Program x = new Program();
   x.getdata();   

   this.getdata();   

   Console.WriteLine(a.Length.ToString());
  }

改成这样就好了。


查看完整回答
反对 回复 2018-11-06
?
不负相思意

TA贡献1777条经验 获得超10个赞

变量生命周期问题;

不同对象;

楼上的可以解决问题。


查看完整回答
反对 回复 2018-11-06
  • 2 回答
  • 0 关注
  • 359 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信