我有一种感觉,我可能会因此而被投票,但我确实试图查找它。
我想初始化一个类类型对象的数组。错误... ref类型,我认为他们称之为C#。我想要一个非原始的非结构类型的数组。
在谷歌搜索和阅读Stack Overflow Answers后,我遇到的唯一语法是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication4
{
public class Person
{
static int _nextId = 1;
int _id;
public Person()
{
_id = _nextId++;
}
};
class Program
{
static void Main(string[] args)
{
Person[] people = new Person[]
{
new Person()
, new Person()
};
if( people[0] == null)
{
throw new System.Exception("Your C# syntax is wrong, noob");
}
}
}
}
我的问题是,如果我想要一个这样大小的数组,我肯定不想再召唤新人10万次。我想我可以在for循环中完成它,但是语言是否内置了一些内容,只是使用默认构造函数初始化数组中的一些对象,而不需要为每个对象进行手动初始化?
答案 0 :(得分:0)
你必须实例化每一个,但你可以使用循环:
Person[] people = new Person[100000];
for (int i = 0; i < people.Length; i++)
people[i] = new Person();
答案 1 :(得分:0)
您可以提供解决方案:
public T[] arrayOf<T>(int count) where T : new()
{
T[] arr = new T[count];
for (int i = 0; i < count; i++)
{
arr[i] = new T();
}
return arr;
}
private void usage()
{
Person[] persons = arrayOf<Person>(100);
}