c# - 有什么区别...? [C# 属性 GET/SET 方式]

标签 c# syntax properties field

我知道在 C# 中,您可以轻松地创建数据类型的访问器,例如,通过执行以下操作:

public class DCCProbeData
{
    public float _linearActual { get; set; }
    public float _rotaryActual { get; set; }
}

但是我的同事建议我这样做:

public class DCCProbeData
{
    private float _linearActual = 0f;

    public float LinearActual
    {
        get { return _linearActual; }
        set { _linearActual = value; }
    }
    private float _rotaryActual = 0f;

    public float RotaryActual
    {
        get { return _rotaryActual; }
        set { _rotaryActual = value; }
    } 
}

我的方法看起来更简单、更简洁。这两种方式的区别和好处是什么?

谢谢

编辑 请注意,我的同事能够使用在图表文件中最容易找到的“类详细信息” Pane 中的“重构”选项生成“第二种方式”的代码。这使得添加许多属性变得容易,而无需手动创建访问器。

最佳答案

“你的方式”只是告诉编译器创建第二个选项。除非您在 getter 或 setter 中执行其他操作,否则它们在功能上是相同的。

但是,对于“您的方式”,我建议使用正确的 C# 命名约定。我个人会这样写:

public class DccProbeData
{
    public float LinearActual { get; set; }
    public float RotaryActual { get; set; }
}

关于c# - 有什么区别...? [C# 属性 GET/SET 方式],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422301/

相关文章:

grails - Grails-部署WAR文件后如何加载.properties文件

c# - 为什么我的 .NET 控制台应用程序在等待 Ctrl-C 时挂起

c# - 如何使用 Microsoft Graph 创建 Microsoft Teams session 作为应用程序?

Python if 语法 3.2.2

.net - 避免使用 C++/CLI 属性进行双重转换

c# - 赋予枚举静态属性

c# - 在 Log4Net 中找不到 Logger 时设置默认日志

javascript - 字符串属性未反序列化

syntax - 需要有关创建新 "standard"的建议/"language"

syntax - 什么是上下文无关语法和巴科斯诺尔范式?