Home [C# 筆記] get set 自動屬性 & 普通屬性
Post
Cancel

[C# 筆記] get set 自動屬性 & 普通屬性

自動屬性 & 普通屬性

「自動屬性」有什麼不一樣?
什麼稱它為自動屬性呢?
用反編譯看,雖然我不寫field(欄位/字段),但編譯後依然會自動給我們生成field(欄位/字段)。

所以「自動屬性」和「普通屬性」基本上沒什麼區別,本質上就是同一個東西。
只是體驗、寫法不同而己。一個有field(欄位/字段)、有field(欄位/字段)的方法體,另一個只有get,set。

「自動屬性」寫起來比較省事點,以後就用「自動屬性」來寫就可以了。

如果要對「屬性」進行限定,可以在「構造函數」裡面做就可以了。

自動屬性

1
public int Age { get; set; }

getset本質就是兩個函數。

普通屬性

1
2
3
4
5
6
private string _name; //field欄位/字段。用來保護屬性的
public string Name //屬性
{
    get { return _name; }
    set { _name = value;}
}

範例

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Person
{
    //普通屬性
    private string _name; //field欄位/字段。用來保護屬性的
    public string Name //屬性
    {
        get { return _name; }
        set { _name = value;}
    }

    //自動屬性
    public int Age { get; set; }
}

「自動屬性」寫起來比較省事點,以後就用「自動屬性」來寫就可以了。

如果要對「屬性」進行限定,可以在「構造函數」裡面做就可以了。

This post is licensed under CC BY 4.0 by the author.