;预期在(接近“}”)proc = {new Process(i,bts [i],1)};
我不知道如何解决它。我认为它有某种语法问题
//code starts
Process[] proc = new Process[3];
public void prentry()
{
int[] bts = new int[999];
for (int i = 1; i <= n; i++)
{
string txtid = "TextBox" + i;
// MessageBox.Show();
bts[i] = Convert.ToInt32(((TextBox)(this.Controls[(txtid)])).Text);
proc = { new Process(i, bts[i], 1) }; //problem here
}
GFG.findavgTime(proc, proc.Length);
在学习这种用于初始化数组的新语法时,这是一个常见问题。人们可能很容易误认为以下两个做同样的事情,两者都有效:
int[] a = { 1, 2, 3 };
和
int[] a;
a = { 1, 2, 3 };
但遗憾的是并非如此。只有在声明变量时才允许使用= { elements }
语法。
相反,你有两个选择,在这里我将切换到你的例子:
proc = new[] { ... elements ... };
proc = new Process[] { ... elements ... };
如果编译器能够理解你正在创建一个Process
对象数组,你可以删除Process
部分,在你的情况下它可以。
现在,说了所有这些,这只能解释编译器错误。
我的猜测是你不希望它表现得像这样。您已经声明并初始化了proc
数组以包含999个元素,您可能不希望通过循环在每次迭代时重新分配整个数组。
基本上,我认为你想要这个:
proc[i] = new Process(i, bts[i], 1);
(或者这个的一些变化)。这会将新的Process
对象分配给999元素数组的现有元素之一。
以下可能会奏效
proc = new [] {new Process(i, bts[i], 1)} ;