c# - 即使在所有者类别中,也使成员只能通过属性访问吗?

标签 c# properties visibility member

让我们看一下这段代码:

class A {
    int m_x;
    public int x {
        get { return m_x; }
        set { ... }
    }
}

m_x是私有(private)的,因此可以在 A 类中访问,但其他类只能通过 public x 访问它属性。

我有一些方法,每次 x 更改时都必须调用这些方法。 (位于 set { ... } )

我的问题是,在A类中,我可以更改 m_x 的值直接地。

  • 这样,就不会调用“必须调用”方法。

目前此错误的唯一指示是 m_前缀。

有没有办法进行编译时检查?

最佳答案

Is there a way to make a compile-time checking?

不,类 A 应该知道每次设置私有(private)字段时它都必须调用该方法。这是该类实际实现的内部逻辑的一部分。

编译器无法阻止您在不先调用方法的情况下设置私有(private)字段。这将是类开发人员的责任,而不是编译器的责任。

关于c# - 即使在所有者类别中,也使成员只能通过属性访问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42332397/

相关文章:

c# - 如何修复 'cannot convert from method group to ' Func<AsyncCallback, object, IAsyncResult>'?

object - 如何观察所有对象属性的变化?

c - 作为多线程消息传递机制在管道中的可见性

javascript - 图像可见性一

c# - 以编程方式添加 MahApps.Metro 上下文菜单

c# - PhoneApplicationFrame 自定义没有效果

c# - 如何将 Silverlight MVVM 中可观察集合中的单个字段数据绑定(bind)到组合框?

c++ - Qt Override class properties on control deserealization

Java属性图打印问题

javascript - 更改切换();来自显示 :none to Visibility:hidden