首页 新闻 会员 周边

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

0
悬赏园豆:100 [已关闭问题]

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

这能说明什么机制啊?谁能帮帮我,我搞不明白!

风扬雨上的主页 风扬雨上 | 初学一级 | 园豆:100
提问于:2009-05-06 10:45
< >
分享
其他回答(2)
0

  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());
  }

改成这样就好了。

Azuresong | 园豆:3565 (老鸟四级) | 2009-05-06 11:34
0

变量生命周期问题;

不同对象;

楼上的可以解决问题。

winzheng | 园豆:8797 (大侠五级) | 2009-05-06 12:58
0
hackenliu | 园豆:600 (小虾三级) | 2009-05-06 15:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册