【发布时间】:2016-04-18 19:55:55
【问题描述】:
我读过static。我知道这是一个只能由非对象访问的前缀。但我不明白为什么Easter 必须是static?
class JsonFile
{
public List<Holiday> StandardHolidays = new List<Holiday>();
public List<ChangingHoliday> ChangingHoliday = new List<ChangingHoliday>();
public static Easter Easter = new Easter();
public static DaysToOffset GoodFriday = new DaysToOffset("Good Friday", Easter, -2);
}
我还不明白static 的概念。谁能解释一下?
【问题讨论】:
-
static在哪里? -
要实现这一点,请将初始化移动到显式的非静态构造函数中,如下所示:
class JsonFile { public List<Holiday> StandardHolidays; public List<ChangingHoliday> ChangingHolidays; public Easter Easter; public DaysToOffset GoodFriday; public JsonFile() { StandardHolidays = new List<Holiday>(); ChangingHolidays = new List<ChangingHoliday>(); Easter = new Easter(); GoodFriday = new DaysToOffset("Good Friday", Easter, -2); }如果定义了多个构造函数重载,请不要忘记从任何地方“链接”: this()构造函数.