C# 包含对winform控件的引用的数组
我正在使用VisualStudio2010进行winform项目。我在创建包含对Button或任何其他winform控件的引用的数组时注意到了这种情况。如果我这样写:C# 包含对winform控件的引用的数组,c#,visual-studio-2010,C#,Visual Studio 2010,我正在使用VisualStudio2010进行winform项目。我在创建包含对Button或任何其他winform控件的引用的数组时注意到了这种情况。如果我这样写: Button[] buttonArray; buttonArray = {Button1, Button2}; 我将得到多个错误,例如只有赋值、调用、递增、递减和新对象表达式可以用作语句,以及无效的表达式项“{”等等 关于您的信息,按钮1和按钮2在表格上 即使这样做,我仍然会遇到同样的错误: Button[] buttonArr
Button[] buttonArray;
buttonArray = {Button1, Button2};
我将得到多个错误,例如只有赋值、调用、递增、递减和新对象表达式可以用作语句,以及无效的表达式项“{”等等
关于您的信息,按钮1和按钮2在表格上
即使这样做,我仍然会遇到同样的错误:
Button[] buttonArray = new Button[2];
buttonArray = { Button1, Button2};
但是,如果我这样做,Visual Studio会接受:
Button[] buttonArray = new Button[2];
buttonArray[0] = Button1;
buttonArray[1] = Button2;
有人能告诉我哪里出了问题吗?我认为包含控件引用的数组与字符串数组具有相同的本质
谢谢。尝试使用语法
或
在第一个示例中,您还可以用var替换Button[],因为C编译器足够聪明,可以从初始化部分推断类型
数组也可以在不使用new[]near变量声明的情况下初始化
Button[] buttonArray = { Button1, Button2 };
但请注意,当您使用这种语法时,不能使用var关键字。所以下一个代码是非法的:
此处定义了正确的数组初始化语法:执行此操作时:
Button[] buttonArray;
buttonArray = {Button1, Button2};
您没有使用数组初始化语法。您所做的是声明一个按钮数组,但不实例化它,然后尝试将该按钮数组分配给一个代码块。数组初始化语法在分配之外无效。类似于
void MyMethod()
{
string[] s;
{
int i = 0;
}
}
是C中的有效代码块;方法中的卷曲只会改变作用域。无法将代码块分配给变量,例如:
void MyMethod()
{
string[] s;
s =
{
int i = 0;
}; //Totally INVALID!
}
您需要将声明和初始化结合起来,或者在数组中添加新的属性
Button[] buttonArray = { Button1, Button2 }; //Valid
Button[] buttonArray;
buttonArray = new Button[] { Button1, Button2 }; //Also valid!
您的语法错误,即使不需要新的[]。接受此答案,因为它清楚地解释了此buttonArray={Button1,Button2};代码行中实际发生的情况。感谢您的回答。
void MyMethod()
{
string[] s;
{
int i = 0;
}
}
void MyMethod()
{
string[] s;
s =
{
int i = 0;
}; //Totally INVALID!
}
Button[] buttonArray = { Button1, Button2 }; //Valid
Button[] buttonArray;
buttonArray = new Button[] { Button1, Button2 }; //Also valid!