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}歲");
}
}