struct結構是什麼?
結構可以幫助我們一次性宣告多個不同類型的變量。
語法
1
2
3
| [public] struct 結構名 {
成員; //欄位
}
|
定義結構struct
1
2
3
4
5
| public struct Person {
public string name;
public int age;
public char gender;
}
|
使用結構struct
1
2
3
4
| Person person;
person.name = "Rii";
person.age = 99;
person.gender = '女';
|
怎麼區分變數和欄位呢?
成員名前面加上底線
1
2
3
4
5
| public struct Person {
string _name;
int _age;
char _gender;
}
|
再改一個需求,把 char 類型改成 enum列舉類型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Person person;
person._name = "Rii";
person._age = 99;
person._gender = Gender.女; //enum列舉類型賦值
// 定義Person結構
public struct Person
{
public string _name;
public int _age;
public Gender _gender; //enum列舉類型
}
//聲明一個性別的enum列舉類型
public enum Gender {
男,
女
}
|
練習一:struct
定義一個結構叫MyColor, 有三個成員,分別定義為 int類型red, green, blue,
聲明一個MyColor類型的變數,並對其成員賦值,使MyColor可以表示成一個紅色。
1
2
3
4
5
6
7
8
9
10
11
12
13
| //宣告一個MyColor類型的變數,並對其成員賦值
MyColor color;
color._red = 255; //賦值 rbg:255 0 0
color._blue = 0;
color._green = 0;
//定義一個結構叫MyColor, 有三個成員,分別定義為 int類型red, green, blue
public struct MyColor
{
public int _red;
public int _blue;
public int _green;
}
|
練習二:struct+enum
定義一個結構類型Person,有三個成員,分別為姓名、性別、年齡,性別用列舉類型。
聲明兩個Person類型的變數,分別為張三 男 18歲/小月 女 16歲。
1.先定義一個性別的enum列舉型別
1
2
3
4
| public enum Gender
{
男, 女
}
|
2.定義一個結構類型Person,成員有姓名、性別、年齡
1
2
3
4
5
6
| public struct Person
{
public string _name;
public int _age;
public Gender _gender; //性別用列舉類型
}
|
3.聲明兩個Person類型的變數,分別為張三 男 18歲/ 小月 女 16歲
1
2
3
4
5
6
7
8
9
| Person p1;
p1._name = "張三";
p1._age = 18;
p1._gender = Gender.男;
Person p2;
p2._name = "小月";
p2._age = 16;
p2._gender = Gender.女;
|
4.使用
1
2
| Console.WriteLine($"我是{p1._name},今年{p1._age},我是{p1._gender}生");
Console.WriteLine($"我是{p2._name},今年{p2._age},我是{p2._gender}生");
|
完整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
| //3.聲明兩個Person類型的變數,分別為張三 男 18歲/小月 女 16歲
Person p1;
p1._name = "張三";
p1._age = 18;
p1._gender = Gender.男;
Person p2;
p2._name = "小月";
p2._age = 16;
p2._gender = Gender.女;
//4.使用
Console.WriteLine($"我是{p1._name},今年{p1._age},我是{p1._gender}生");
Console.WriteLine($"我是{p2._name},今年{p2._age},我是{p2._gender}生");
//2.定義一個結構類型Person,成員有姓名、性別、年齡
public struct Person
{
public string _name;
public int _age;
public Gender _gender; //性別用列舉類型
}
//1.定義性別的enum列舉型別
public enum Gender
{
男,
女
}
|
/classes-and-structs/fields