C#将变量添加到数组中

时间:2015-08-22 15:08:58

标签: c# arrays wpf

我想将其他函数中的变量用于类似的数组:

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的错误仍然相同:

  

字段初始值设定项不能引用非静态字段方法或   属性

3 个答案:

答案 0 :(得分:1)

我认为你已将它放在Constructor之前。在Constructor之外使用的任何对象初始值设定项都必须引用静态成员。您收到此错误是因为必须先初始化实例,然后才能访问其类的属性。您应该将代码放在Constructor内。

答案 1 :(得分:0)

正如杰夫在评论中所指出的那样,主要问题(除非你把其他地方搞砸了,唯一的问题)是你可能已经传递了一些非数字字符,这导致了问题。我建议您使用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
}

加号:您的代码中存在区分大小写的问题。控件TextBox有一个字段Text,而不是text。这也是您的代码中的一个问题,您应该考虑记住这一点。

修改

在你的评论中你提到你得到的错误是,字段初始值设定项不能引用非静态字段方法或属性,这意味着你正在尝试使用这个变量(IMO; Textbox1 )在一个单独的类或窗口中。在这种情况下,你不能按照它的方式使用它,因为它是非静态的。要引用它,请创建一个类实例

var text = new MainWindow().TextBox1.Text;

这将为Window创建一个实例(记住,WPF没有Form,它有一个Window控件),然后它将引用TextBox控件来访问属性Text

答案 2 :(得分:-1)

您缺少使用 import java.util.Scanner; class mmm { public static void main(String[] args) { Scanner clavier = new Scanner(System.in); String name; String password; String time; String adult; System.out.println("Hello,create your username:\t"); name = clavier.nextLine(); System.out.println("Welkom " + name); System.out.println("Do you have more than 18 years? (Yes/No)"); //adult = clavier.findWithinHorizon(".", 0).charAt(0); adult = clavier.nextLine(); if (adult.equalsIgnoreCase("y")) { System.out.println("you are adult"); } else { System.exit(0); } System.out.println("create your password:\t"); password = clavier.nextLine(); while ((password.length() < 6) || (password.length() > 10)) { System.out .println("please create a password between 6 and 10 letters"); password = clavier.nextLine(); } String password2; System.out.println("Please write your password again"); password2 = clavier.nextLine(); while (!password2.equals(password)) { System.out.println("your passwords aren't the same"); password2 = clavier.nextLine(); } System.out.println("acount create"); } } arg1创建的数组类型。

像这样添加数组类型: arg2

它应该有用!