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());
}
改成這樣就好了。
- 2 回答
- 0 關注
- 379 瀏覽
添加回答
舉報
0/150
提交
取消