目錄
?1.如何定義一個結構體(struct 關鍵字)
2.如何使用一個結構體?
3.如何修改一個數據
4.如何讓去訪問一個學生的信息
5、結構體數組
練習
?1.如何定義一個結構體(struct 關鍵字)
C#中public 、private、protect的區別
結構體 : 作用就是把某一類的變量進行整合 ?組成一個新的數據類型,相當于一個全新的信息 ? 比如學生信息(包含年齡,姓名,身高,學號等信息);
//struct 聲明結構的關鍵字private struct Studen //Studen 結構體的名字(類型){//結構體內部 定義數據 定義學生相關的信息// 想要收集的數據 都可以在此處定義// 字段public string name;public int age;public double heigth;public int id;//結構體中的函數//方法public void Show(){Console.WriteLine($"{name} {age} {heigth} {id}");}}
2.如何使用一個結構體?
//第一個學生
Studen stu = new Studen(); //使用結構體聲明一個變量 這個變量就代表結構體
//通過變量去操作結構體 進行數據儲存
stu.name = "張三";
stu.age = 18;
stu.heigth = 1.75;
stu.id = 123456;// 第二個學生
Studen stu1 = new Studen();
stu1.name = "李四";
stu1.age = 20;
stu1.heigth = 1.80;
stu1.id = 000000;
3.如何修改一個數據
stu.id = 888888;
4.如何讓去訪問一個學生的信息
// 結構體 數據與數據之間是相互隔離的 不會相互影響
Console.WriteLine(stu.id);
Console.WriteLine(stu1.id);
5、結構體數組
//如果有一組數據 使用數組 結構體數據Studen[] stus = new Studen[2];stus[0].name = "王五";stus[0].age = 21;stus[0].heigth = 1.78;stus[0].id = 111111;stus[1].name = "趙六";stus[1].age = 19;stus[1].heigth = 1.65;stus[1].id = 123111;stus[0].Show();stus[1].Show();
練習:
有一個三維坐標系,給出x,y,z,計算正方體體積
static void Main(string[] args)
{//使用結構體內的方法賦值Position ps = new Position(3.15,2.6,2);//直接賦值//ps.x = 3.15;//ps.y = 2.6;//ps.z = 2;ps.Point();
}// 定義一個表示三維坐標的結構體
// x y z
struct Position
{//結構體中的字段public double x;public double y;public double z;//結構體中的構造函數//實例化調用//初始化賦值 數據public Position(double x,double y,double z) //和類的名字Position必須相同{//this 指的是Position類結構體,等號前面指的是方法外層的x,y,z,等號后面是方法里的參數x,y,zthis.x = x;this.y = y;this.z = z;}public void Point(){Console.WriteLine(x*y*z);}
}
注:在C# 結構體代碼中,`Position` 有兩種含義,需要結合上下文來理解:
1. **結構體名稱**:`struct Position` 中的 `Position` 是這個結構體的名稱,它定義了一個新的自定義類型,用于表示三維坐標(包含 x、y、z 三個屬性)。
2. **構造函數**:`public Position(double x, double y, double z)` 中的 `Position` 是這個結構體的構造函數。構造函數是一種特殊的方法,它的名稱必須與結構體(或類)的名稱完全一致,用于在創建結構體實例時初始化其成員變量。
當你使用 `new Position(1, 2, 3)` 創建結構體實例時,就是在調用這個與結構體同名的構造函數,它會接收三個參數并為 x、y、z 賦值。 簡單來說,在這個結構體中,`Position` 既是類型本身的名稱,也是用于初始化該類型實例的構造函數的名稱,這是 C# 中類型定義的標準語法。