好的,所以我有下面的代码,从技术上讲,它所做的就是逐行读取 db.txt
文件,然后假设将 0
行拆分为名为密码的数组。
private string[] lines = System.IO.File.ReadAllLines(@"U:\Final Projects\Bank\ATM\db.txt");
private string[] password = lines[0].Split(' ');
但是我得到了错误:
A field initializer cannot reference the non-static field, method, or property
最佳答案
考虑一下上面的含义以及您希望如何填充这些变量。您需要首先构造它们所属的类,然后希望代码行按照您希望的顺序执行,并且它们不会抛出异常。
编译器有效地告诉您这不是正确的做事方式。
更好的方法是简单地编写一个函数来执行您想要的操作:
private string[] PasswordLines(){
string[] lines = System.IO.File.ReadAllLines(@"U:\Final Projects\Bank\ATM\db.txt");
return lines[0].Split(" ");
}
然后您可以从任何您想要的地方调用它;例如:
public class MyClass()
{
private string[] Lines
{
get { return PasswordLines(); }
}
private string[] PasswordLines(){
string[] lines = System.IO.File.ReadAllLines(@"U:\Final Projects\Bank\ATM\db.txt");
return lines[0].Split(" ");
}
}
关于c# - 字段初始值设定项不能引用非静态字段、方法或属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8366964/