C# 当创建一个对象数组并以不同方式初始化它们时,对数组中的每个对象调用两次“new”是否好?
当创建类的对象数组且数组中的对象数仅在运行时确定时,如何以不同方式初始化数组中的每个对象 例如,C# 当创建一个对象数组并以不同方式初始化它们时,对数组中的每个对象调用两次“new”是否好?,c#,arrays,C#,Arrays,当创建类的对象数组且数组中的对象数仅在运行时确定时,如何以不同方式初始化数组中的每个对象 例如,SimpleJob是一个类。我想创建一个SimpleJob的对象数组,并以不同的方式初始化它们 SimpleJob[] jobs = new SimpleJob[nbJobs]; for (int i = 1; i <= nbJobs; ++i) { jobs[i-1] = new SimpleJob(i, false); } SimpleJob[]jobs=新的SimpleJob[
SimpleJob
是一个类。我想创建一个SimpleJob
的对象数组,并以不同的方式初始化它们
SimpleJob[] jobs = new SimpleJob[nbJobs];
for (int i = 1; i <= nbJobs; ++i)
{
jobs[i-1] = new SimpleJob(i, false);
}
SimpleJob[]jobs=新的SimpleJob[nbJobs];
对于(int i=1;i您没有两次调用new
SimpleJob[] jobs = new SimpleJob[nbJobs];
这将创建一个对SimpleJob
对象的潜在引用数组。该数组实际上还没有包含任何SimpleJob
对象。并且没有在任何地方创建SimpleJob
对象。数组的每个元素都是null
引用
请注意,在C#中,类类型的变量始终是对对象的引用
List<SimpleJob> jobs = new List<SimpleJob>();
for (int i = 1; i <= nbJobs; ++i)
{
jobs.Add(new SimpleJob(i, false));
}
提示:不要使用数组,而是使用List
对象
List<SimpleJob> jobs = new List<SimpleJob>();
for (int i = 1; i <= nbJobs; ++i)
{
jobs.Add(new SimpleJob(i, false));
}
List jobs=new List();
for(int i=1;ifor(int i=0;i
也许?除了@alexD指出的索引器之外,您的方法非常好。您认为它还有什么问题?在“如何以不同方式初始化数组中的每个对象”中,不同对您意味着什么?你没有两次调用new。你是怎么想到要调用new两次的?@Tim-你在数组上调用new
,在每个实例上调用new
-这里根本没有冗余。如果SimpleJob
是结构,这是不正确的。@AlexD-True,这就是我写“类类型”的原因:然后答案应该从“假设SimpleJob是一个类”这样的内容开始:。否则,“数组的每个元素都是空引用”语句在技术上是不正确的。