c#向数组中添加变量
本文关键字:添加 变量 数组 | 更新日期: 2023-09-27 18:09:19
我想使用其他函数中的变量来数组这样的东西:
int arg1 = int.Parse(Textbox1.Text);
int arg2 = int.Parse(Textbox2.Text);
int[] array1 = {arg1, arg2};
但是它不工作,请帮助
我尝试了一些更简单的方法
int arg1 = 0;
int arg2 = 1;
int[] DaneInt = { arg1, arg2};
对于arg1
和arg2
仍然是相同的错误:
字段初始化项不能引用非静态字段方法或地产
我想你已经把它放在Constructor
之前了。在Constructor
之外使用的任何对象初始化器都必须引用静态成员。出现此错误是因为必须先初始化实例,然后才能访问其类的属性。您应该将代码放在Constructor
中。
正如Jeff在他的评论中指出的那样,主要问题(也是唯一的问题,除非您在其他地方搞砸了)是您可能传递了一些非数字字符,这导致了问题。我建议您使用TryParse()
来尝试这种方式。int[] array1 = new int[2]; // Array of 2 elements
int arg1 = int.TryParse(Textbox1.Text, array1[0]); // At zero index
int arg2 = int.TryParse(Textbox2.Text, array1[1]); // At 1 index
这可以工作,如果不行,你可以用一种
方式显示错误消息if(int.TryParse(Textbox1.Text, array1[0]) {
// Worked
} else {
// Didn't work
}
Plus:代码中存在区分大小写的问题。控件TextBox有一个字段Text
,而不是text
。这也是你代码中的一个问题,你也应该考虑记住这一点。
编辑
在你的评论中,你提到你得到的错误是,字段初始化器不能引用非静态字段方法或属性,这意味着你试图使用这个变量(IMO;Textbox1)在一个单独的类或窗口。在这种情况下,你不能直接使用它,因为它是非静态的。要引用它,请创建一个类实例
var text = new MainWindow().TextBox1.Text;
这将为窗口创建一个实例(记住,WPF没有窗体,它有一个窗口控件),然后它将引用TextBox控件来访问属性Text
。
您缺少使用arg1
和arg2
创建的数组类型。
添加数组类型如下:int[] array1 = new int[] { arg1, arg2};
它应该工作!