c# - 在类内部时,调用它的私有(private)成员还是公共(public)属性更好?

标签 c# variables properties

<分区>

这是我在代码中一直纠结的问题。假设我们有以下代码:

public class MyClass {
    private string _myVariable;

    public string MyVariable {
        get { return _myVariable; }
        set { _myVariable = value; }
    }

    public void MyMethod() {
        string usingPrivateMember = _myVariable; // method A
        string usingPublicProperty = MyVariable; // method B
    }
}

哪种方式更正确 - 方法 A 或 B?我总是为此感到痛苦。方法 A 似乎会快一点,因为它不必在获取实际变量之前访问属性。但是,方法 B 更安全,因为如果 MyVariable 的 getter 将业务逻辑添加到其中,则始终调用它是安全的,即使当前没有业务逻辑也是如此。

普遍共识是什么?

最佳答案

使用属性。

我认为属性(property)应该全权负责管理那个领域。

有很多实现无关紧要,但有很多实现很重要——很多。另外,这可能有点难以追踪,因为它总是看起来是正确的。

与调用字段相比,调用属性出错的次数要少得多,如果有此规则的异常(exception)情况,请记录理由。

关于c# - 在类内部时,调用它的私有(private)成员还是公共(public)属性更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2152014/

相关文章:

c# - 在 Windows 8 商店 C# 应用程序 : The base class or interface could not be resolved 中使用 WSDL Web 服务

c# - 引入 Visual Studio 2015 的问题

javascript - 如果数组有特定值

ios - Objective C View Controller 属性未保存

scala - 将特殊字符转换为 Unicode 转义字符 Scala

c# - 将自动属性转换为完整属性

c# - 将万无一失的 RequiredIf 与枚举一起使用

C 变量指定为 long long 但被识别为 int

javascript - jQuery - 变量范围问题

c# - 与在 C# 类终结器中执行操作相比,使用 IDisposable 的优势