簡體   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