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};

对于arg1arg2仍然是相同的错误:

字段初始化项不能引用非静态字段方法或地产

c#向数组中添加变量

我想你已经把它放在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

您缺少使用arg1arg2创建的数组类型。

添加数组类型如下:int[] array1 = new int[] { arg1, arg2};

它应该工作!