为什么我的数组默认构造函数在这里没有被调用?

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个回答

4

A[] a = new A[10];只会创建一个可以容纳10个A实例的数组,但是这些引用被初始化为null。您需要首先创建这些实例,例如a [0] = 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() };

0

数组默认情况下会被初始化为 null 值。它们是手头类型的容器,而不是实际类型的对象。


0
你正在声明一个数组,它可以容纳10个A的实例,但是你还没有分配任何A的实例。你需要使用new A()来创建实例并将它们放入数组中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接