c# - 您是否在类本身中使用数据成员或公共(public)属性?

标签 c# asp.net properties data-members

如果我有一个像这样的简单类设置:

class MyClass
{
    private string _myName = string.Empty;

    public string MyName
    {
        get
        {
            return _myName;
        }
    }

    public void DoSomething()
    {
        // Get the name...
        string name = string.Empty;

        name = _myName;

        // OR

        name = MyName;

        // ...and do something with it...
    }
}

我应该使用哪个,公共(public)属性还是数据成员?

显然,在这个例子中它没有什么不同,因为它们都只是引用同一个变量。但是公共(public)属性在现实世界中的使用情况如何呢?

一般来说,Public Properties 是不是执行的很少,在什么情况下调用它们就可以了?或者人们是否将很多功能放入了不应由内部类引用调用的公共(public)属性中?

我在另一篇文章中看到了关于不要将大量功能放入属性中的内容,因为在调试器中检查它们可能会产生意想不到的结果。是真的吗?

最佳答案

使用属性 - 任何可能封装在 setter 和 getter 中的逻辑都应该应用,即使在类本身中也是如此。如果 getter 和 setter 中没有逻辑,那么使用这些字段本身仍然是不安全的,因为如果您希望在任何时候围绕对这些字段的访问添加逻辑,您将不得不进行更多的重构。

关于c# - 您是否在类本身中使用数据成员或公共(public)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075988/

相关文章:

c# - 协变地交换列表中的两个元素

c# - 在 C# 中将 foreach 转换为 lambda 表达式

c# - 您将如何在 C# 3.0 中构建桌面应用程序

c# - 如何向超过 15000 个收件人发送邮件?

使用创建的对象调用另一个函数后,Javascript 创建的对象属性值未定义

python - 在 sqlalchemy 中绑定(bind)关系时分配变量

c# - 如何在 C# 中将 DataTable 转换为通用列表

.net - 我是否需要手动删除所有事件以使我的对象从内存中删除?

c# - WebClient.UploadFileASync 的非常奇怪的行为

ios - 应用程序在 iPad 上崩溃,但在 iPad 模拟器中不会崩溃