首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 三大複雜變數型別:枚舉、結構體與陣列深度解析

     編輯:關於C#

超越基本型別的使用者定義型別

基本型別(int、double、bool 等)在記憶體佔用固定大小,而複雜型別允許開發者自訂資料結構。C# 提供三種核心複雜型別:枚舉、結構體、陣列。

一、枚舉

枚舉(enum)定義一組具名常數,預設底層型別為 int,值從 0 遞增。可指定其他整數型別(byte、short、long 等)。

定義與使用

enum Days
{
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6,
    Sunday = 7
}

// 指定底層型別為 short
enum Days : short { }

// 使用
Days today = Days.Friday;
Console.WriteLine("Today is {0}", today); // 輸出 "Friday"

枚舉輸出結果 枚舉定義位置示意

枚舉變數一次只能持有其中一個值,適合表示互斥的狀態集合。

二、結構體

結構體(struct)是實值型別,可包含多個不同型別的欄位與方法,適合輕量級物件(如座標、色彩、簡單資料記錄)。

定義與實例化

struct Cloth
{
    public int Age;
    public string Sex;
    public string Style;
    public double Price;
    public double Discount;
}

Cloth myCloth;
myCloth.Age = 2;
myCloth.Sex = "man";
myCloth.Style = "長褲";
myCloth.Price = 999.99;
myCloth.Discount = 0.98;

Console.WriteLine("Age={0}, Sex={1}, Style={2}, Price={3}, Discount={4}",
    myCloth.Age, myCloth.Sex, myCloth.Style, myCloth.Price, myCloth.Discount);

結構體輸出結果

與類別不同,結構體不支援繼承,實例化不需 new(但建議使用),儲存在堆疊上,效能較高。

三、陣列

陣列用於儲存大量相同型別的資料,支援一維、多維與交錯陣列。

一維陣列宣告與初始化

// 宣告並指定長度
string[] stuNames = new string[5];
stuNames[0] = "國家";
stuNames[1] = "人們";
stuNames[2] = "中國";
stuNames[3] = "漢族";
stuNames[4] = "主席";

// 宣告同時初始化
int[] scores = { 1, 5, 6, 8, 5, 7, 74 };

// 遍歷
foreach (string name in stuNames)
    Console.WriteLine(name);

陣列輸出結果

多維陣列

// 二維陣列:30 位學生,3 門課程
double[,] stuScores = new double[30, 3];
stuScores[1, 2] = 95.5; // 第 2 位學生第 3 門課成績

// 交錯陣列(陣列的陣列)
int[][] jagged = new int[3][];
jagged[0] = new int[] { 1, 2 };
jagged[1] = new int[] { 3, 4, 5 };

陣列長度在宣告時必須為常數;存取前必須初始化,否則編譯錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved