Home [C# 筆記] 為屬性(get/set)設定初始值
Post
Cancel

[C# 筆記] 為屬性(get/set)設定初始值

使用建構函式

透過建構子來設定

1
2
3
4
5
6
7
8
public class Person
{
    public Person() //建構子 ctor
    {
        this.Name = "Initial Name";
    }
    public string Name { get; set; }
}

在構造函數中。構造函數的目的是初始化它的資料成員。
使用建構函數,因為「當建構函數完成時,構造應該完成」。
屬性就像你的類別所持有的狀態,如果你必須初始化一個預設狀態,你會在你的建構函式中這樣做。

使用普通屬性(帶有初始值)

在 屬性背後的實際欄位(backing field)直接設定。

1
2
3
4
5
6
7
8
9
public class Person
{
    private string _name = "Initial Name"; //屬性背後的實際欄位(backing field)直接設定
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
}

使用自動屬性(指定初始值) C# 6

在宣告屬性的時候就設定初始值。
(在定義自動屬性的時候用 = 運算子來加上賦值敘述,以設定該屬性的初始值)

1
2
3
4
public class Person
{
    public string Name { get; set; } = "Initial Name"; //直接用=,指定初始值
}

唯讀的自動屬性 C# 6

唯讀的自動屬性可以使用 Lambda 運算子=>設定初始值。

1
2
3
4
public class Person
{
    public string Name => "Initial Name";
}

C# (7.0)

Lambda 運算子=> + 屬性背後的實際欄位(backing field)

1
2
3
4
5
6
7
8
9
public class Person
{
    private string _name = "Default Value";
    public string Name
    {
        get => _name;
        set => _name = value;
    }
}

MSDN - 使用屬性 (C# 程式設計手冊)
MSDN - 自動實作的屬性 (C# 程式設計手冊)
C# 的唯讀自動屬性是怎樣煉成的 by huanlintalk
CSDN - 为 C# 自动属性赋予初始值的最佳方法是什么?
HuntsBot - 为 C# 自动属性赋予初始值的最佳方法是什么?
[C# 筆記] get set 自動屬性 & 普通屬性 by R
Book: Visual C# 2005 建構資訊系統實戰經典教本

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

[C# 筆記] 屬性(get/set)對非法值進行限定的三種方法

[C# 筆記] 命名空間(Namespace)