2010-02-24 110 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() }; 
相关问题