;预期在(“}”附近)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);
答案 0 :(得分:2)
这是学习用于初始化数组的新语法时的常见问题。一个人很容易就会误以为以下两个可以做同样的事情,而且都可以工作:
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元素数组的现有元素之一。
答案 1 :(得分:1)
以下内容可能会起作用
proc = new [] {new Process(i, bts[i], 1)} ;