2010-02-24 4 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

Вы объявляете массив, который может удержать 10 экземпляров A, но вы еще не выделили ни одного экземпляра 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() }; 
Смежные вопросы