繁体   English   中英

自动属性与带有字段的属性

[英]Auto-property vs property with a field

这两者有什么区别吗?

int a;
public int A
{
    get => a;
    set => a = value;
}
public int A { get; set; }
public int A { get; set; }

和说的完全一样:

private int _a;
public int A
{
    get => _a;
    set => _a = value;
}

自动属性只是私有字段和公共 getter 和 setter 的语法糖。 它允许您在没有 getter 和 setter 方法的样板的情况下访问和改变字段(作为属性)

如果这是 java,你会得到类似的东西:

private int a;

public void setA(int a){
    this.a = a;
}

public int getA(){
    return a;
}

在 java 中创建类时,定义 getter、setter、hash 代码和字符串方法变得非常常规。 C# 旨在消除一些麻烦

它只是 C# 的语法质量,用于更清晰的代码。 它也非常模块化,请查看文档以了解如何制作私有设置器、使用init进行不可变后 obj 构造等

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM