c# – 为什么私有字段可以访问,私有setter无法从静态方法访问?
发布时间:2020-12-15 19:47:18 所属栏目:百科 来源:网络整理
导读:以下给出了编译错误: private ObservableEventListener Listener { get; private set; } public static void Register() { Log.Listener = new ObservableEventListener(); Log.Listener.EnableEvents(Log,EventLevel.LogAlways,EventKeywords.None); } Err
以下给出了编译错误:
private ObservableEventListener Listener { get; private set; } public static void Register() { Log.Listener = new ObservableEventListener(); Log.Listener.EnableEvents(Log,EventLevel.LogAlways,EventKeywords.None); }
但这编译得很好: private ObservableEventListener Listener; public static void Register() { Log.Listener = new ObservableEventListener(); Log.Listener.EnableEvents(Log,EventKeywords.None); } 看来,支持setter方法有更多的安全性吗?总是有冗余的代码/警告行.为什么这是一个错误? 解决方法
你在setter上指定了private,这通常很好,除了你把成员私有化.
私有不比私有更严格,这违反了错误中引用的规则,即:
也许语言设计者应该允许相同的限制性,但他们没有,所以编译失败. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |