Home [C# 筆記] get set 屬性
Post
Cancel

[C# 筆記] get set 屬性

get set 屬性

屬性的作用就是保護字段,對字段的賦值和取值進行限定。

這幾個名詞要記得

1
2
3
field 字段
method 方法
property 屬性
1
2
3
4
5
6
7
8
9
10
11
12
class Person
{
    private string _name;
    public string Name
    {
        get { return _name; } //當你輸出值的時候,會執行get方法
        set { _name = value; } //當你給屬性賦值的時候,首先會執行set方法
    }

    private int _age;
    public int Age { get; set; }
}

set 對賦值的時候進行限定

1
2
3
4
5
6
7
8
9
10
11
12
13
private int _age;
public int Age
{
    get { return _age; }
    set
    {
        //對賦值進行限定
        if (value < 0 || value > 100) { //賦值的年齡小於0或大於100,就設置0
            value = 0;
        }
        _age = value;
    }
}

get 對取值的時候進行限定

1
2
3
4
5
6
7
8
9
10
11
12
public int Gender
{ 
    get
    {
        //對取值進行限定
        if (_gender != '男' || _gender != '女') {
            _gender = '男';
        }
        return _gender;
    }
    set { _gender = value; }
}

完整Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Person person = new Person(); //創建物件
person.Name = "Rii";
person.Age = 999;
person.Gender = '中';
person.SayHello(); 
//輸出:我是Rii,我是男生,今年0歲

public class Person
{
    private string _name;
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    private int _age;
    public int Age
    {
        get { return _age; }

        set
        {
            if (value < 0 || value > 100)
            {
                value = 0;
            }
            _age = value;
        }
    }

    private char _gender;
    public char Gender
    {
        get
        {
            if (_gender != '男' || _gender != '女') {
                return _gender = '男';
            }
            return _gender;
        }
        set { _gender = value; }
    }

    public void SayHello() {
        Console.WriteLine($"我是{this.Name},我是{this.Gender}生,今年{this.Age}歲");
    }
}

classes-and-structs/properties

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