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

标签 c# visual-studio visual-studio-2010

好的,所以我有下面的代码,从技术上讲,它所做的就是逐行读取 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/

相关文章:

c# - 如何部署用sql server express 2012和 Crystal 报表开发的C#windows窗体应用

c# - Visual Studio 应该或可以在 App-V 中运行吗?有什么影响?

c++ - 从命令行构建 Visual Studio Express 11 项目

visual-studio-2010 - Visual Studio 遇到异常

visual-studio-2010 - 在 C# 中打印到网络打印机

c# - 无法加载文件或程序集 ServiceStack.Text 系统找不到指定的文件

c# - 如何将XML导入数据库?

c# - 重写 .Net DLL 的方法

来自 Web 服务调用的 XML

visual-studio-2010 - 有没有办法在 Visual Studio 2010 中显示所有编译器警告?