我有以下代码:
// using Windows.Storage;
internal static class AppData {
    private static ApplicationDataContainer container;
    public static bool FirstTime { get; } = !GetContainer("UserInfo").Values.ContainsKey("complete");
    static AppData() {
        container = ApplicationData.Current.LocalSettings;
    }
    private static ApplicationDataContainer GetContainer(string name) {
        return container.CreateContainer(name,ApplicationDataCreateDisposition.Always);
    }
}
NullReferenceException:未将对象引用设置为对象的实例.
我不知道为什么这是错的.对代码进行一些更改
// using Windows.Storage;
internal static class AppData {
    private static ApplicationDataContainer container;
    public static bool FirstTime => !GetContainer("UserInfo").Values.ContainsKey("complete");
    static AppData() {
        container = ApplicationData.Current.LocalSettings;
    }
    private static ApplicationDataContainer GetContainer(string name) {
        return container.CreateContainer(name,ApplicationDataCreateDisposition.Always);
    }
}
好的,没有错误.
为什么?
我将不得不查阅参考,但问题是
public static bool FirstTime { get; } = ....;
是一个初始化器.作为初始化程序,它在构造函数之前执行.
当您将其更改为函数(或只读lambda属性)时,它是一个普通成员,它将在构造函数之后执行.
| 归档时间: | 
 | 
| 查看次数: | 131 次 | 
| 最近记录: |