【发布时间】:2016-09-19 08:35:42
【问题描述】:
我的表的很多标题都有很多字符串,例如:
private readonly string headerOne = translateIfNeeded("headerOne");
private readonly string headerTwo = translateIfNeeded("headerTwo");
private readonly string headerThree = translateIfNeeded("headerThree");
private readonly string headerFour = translateIfNeeded("headerFour");
得到了大约 30 个。
我可以简单地将它们分组到一个数组中,以便以后可以轻松地迭代它们吗?试图将以下内容放在我的字符串下方,但它不会让我这样做;
private readonly string[] headers = { headerOne, headerTwo };
private readonly string[] headers = new string[]{ headerOne, headerTwo };
说了一些关于“字段初始值设定项不能引用非静态字段 [...] headerOne”的内容。
【问题讨论】:
-
private static readonly string[] headers = { headerOne, headerTwo }; -
同样的错误信息。那太容易了,不是吗?
-
您可以在构造函数中初始化您的 headers 数组:
headers = new string[] { headerOne, headerTwo }并通过private readonly string[] headers;简单地声明成员变量 -
也想过这个,但是我的构造函数会很胖:(
-
没错,构造函数会很混乱。如果您只使用标头变量,您可以使用反射通过
this.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic)读取所有变量,使用您的翻译函数对其进行初始化并将标头添加到列表中
标签: c# arrays string initialization