c# - 哪个更好地拥有带有私有(private) setter 的自动实现的属性或私有(private)字段和属性只是 getter?

标签 c#

我的问题可能是一个老话题的一部分——“属性与字段”。

我有这样的情况,变量对于外部类是只读的,但需要在类内修改。我可以通过两种方式处理它:

首先:

private Type m_Field;
public Type MyProperty { get { return m_Field; } }

第二个:

public Type MyProperty { get; private set; }

阅读了几篇文章(主要介绍了使用公共(public)属性而不是公共(public)字段的好处)后,我不知道第二种方法是否比第一种方法有一些优势,但编写的代码更少。我感兴趣的是在项目中使用哪个更好的实践(以及为什么),或者这只是个人选择。

也许这个问题不属于SO所以我提前道歉。

最佳答案

第二个版本产生的困惑较少,但灵 active 较差。我建议您使用第二个版本,直到您遇到需要使用第一个版本的情况,然后再进行重构 - 无论如何更改都将在类中进行,所以不要太担心这一点!

通常,少写代码是个好主意。您编写的代码越少,产生的错误就越少:)

关于c# - 哪个更好地拥有带有私有(private) setter 的自动实现的属性或私有(private)字段和属性只是 getter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11259050/

相关文章:

c# - 如何在分配属性时自动处理数据?

c# - 将 DBContext 服务添加到 Worker 项目中的 program.cs

c# - UWP 缩略图与带有 x :bind 的图像绑定(bind)

c# - C# 中的正则表达式匹配 "..."

c# Selenium Chromedriver 打开错误的 url onload

c# - Boolean cast Specified cast is not valid 错误

c# - Mono for Android 库中的 Resources 文件夹

c# - C#中如何锁定单个线程

c# - 将欧拉转换为矩阵并将矩阵转换为欧拉

c# - LINQ查询匹配多个词