2010-02-24 120 views
4
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 


namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
       A[] a = new A[10]; 
     } 
    } 

    public class A 
    { 
     static int x; 

     public A() 
     { 
      System.Console.WriteLine("default A"); 
     } 

     public A(int x1) 
     { 
      x = x1; 
      System.Console.WriteLine("parametered A"); 

     } 
     public void Fun() 
     { 
      Console.WriteLine("asd"); 
     } 
    }  
} 

爲什麼我的默認構造函數沒有在這裏調用?我究竟做錯了什麼?爲什麼我的默認構造函數沒有在這裏被調用?

回答

4

A[] a = new A[10];只會創建一個可以容納10個實例A的數組,但引用初始化爲null。您必須先創建這些實例,例如a[0] = new A();

0

默認情況下,數組初始化爲空值。它們是手頭類型的容器,而不是該類型的實際對象。

0

您正在聲明一個數組,可以保存A的10個實例,但尚未分配任何A實例。你將不得不new A()並將它們放入數組中。

0

需要初始化以及

A[] a = new A[2] { new A(), new A() }; 
A[] a = new A[] { new A(), new A() }; 
A[] a = { new A(), new A() }; 
相關問題