我想要一个类,它将所有"允许的语言"存储在列表中.代码方应该能够修改列表.但是在第一次使用时,列表应该用一些默认值"初始化".
我有以下课程:
public class ApiLanguages
{
public static List<string> AllowedLanguages { get; set; }
public ApiLanguages()
{
AllowedLanguages.Add("de");
//AllowedLanguages.Add("en");
//AllowedLanguages.Add("es");
//AllowedLanguages.Add("fr");
//AllowedLanguages.Add("it");
}
}
Run Code Online (Sandbox Code Playgroud)
当我现在在代码中访问类时
foreach (var language in ApiLanguages.AllowedLanguages)
{
// do something here...
}
Run Code Online (Sandbox Code Playgroud)
在ApiLanguages.AllowedLanguages为空.但我期待一个条目("de").我在这做错了什么?
public ApiLanguages()是一个实例构造函数.当您创建ApiLanguages(via new ApiLanguages())的新实例时,它仅运行(并且每次都运行).它的目的是初始化实例变量,而不是静态变量.通常不应在实例构造函数中初始化静态属性或字段.
您需要使用静态构造函数来初始化静态列表,如下所示:
public class ApiLanguages
{
public static List<string> AllowedLanguages { get; set; }
static ApiLanguages()
{
AllowedLanguages = new List<string>();
AllowedLanguages.Add("de");
//...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1040 次 |
| 最近记录: |