Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当创建一个对象数组并以不同方式初始化它们时,对数组中的每个对象调用两次“new”是否好?_C#_Arrays - Fatal编程技术网

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;i
for(int i=0;i
也许?除了@alexD指出的索引器之外,您的方法非常好。您认为它还有什么问题?在“如何以不同方式初始化数组中的每个对象”中,不同对您意味着什么?你没有两次调用new。你是怎么想到要调用new两次的?@Tim-你在数组上调用
new
,在每个实例上调用
new
-这里根本没有冗余。如果
SimpleJob
结构,这是不正确的。@AlexD-True,这就是我写“类类型”的原因:然后答案应该从“假设SimpleJob是一个类”这样的内容开始:。否则,“数组的每个元素都是空引用”语句在技术上是不正确的。