C#學習筆記05--枚舉/結構體

一.枚舉
 
當變量的取值範圍是固定的幾個時, 就可使用枚舉類型, 這樣會更加簡潔方便
 
1.1.定義:
 訪問修飾符  enum 枚舉類型名  
{
    成員1,
    成員2,
    成員3,
     ...
}
 public enum Days
    {
        Mon = 1,
        Tue,
        Wed,
        Thu,
        Fri,
        Sat,
        Sun
    }
  1. enum: 是枚舉的關鍵字;
  2. Days 枚舉類型名;
  3. Mon, Tue, Wed,...是枚舉成員變量 枚舉類型賦值只能是成員變量;
  4. 枚舉的默認值是從0開始的, 能夠人爲改變 如下個會在上一個的基礎上默認加1;
 
1.2.枚舉的使用
語法格式: 枚舉類型   枚舉變量名 = 枚舉類型.枚舉值:
Days date = Days.Sun;
Console.WriteLine(date);   // Sun
若是想要獲得 成員變量對應的數字 能夠進行一個強制類型轉換
Console.WriteLine((int)date); // 7
注意:
  1. 當給枚舉變量賦值時, 其值只能經過枚舉類型名加點運算符, 從定義的枚舉類型後面的{}裏面選取, 故枚舉類型限制了枚舉變量的取值, 所以在編程過程當中, 使用枚舉類型可讓咱們的數據保持統一.
  2. 系統會給枚舉值賦一個默認的int類型的值, 第一個枚舉值是0, 後面的枚舉值所對應的int 值依次加1; 故枚舉類型本質上也是個int類型的值, 能夠在int 類型和枚舉類型之間進行轉換, 轉換時須要使用強制類型轉換符;
類型轉換
  1. 字符串轉換枚舉類型 Days date = (Days)Enum.Parse(typeof(Days), Console.ReadLine());
  2. 枚舉類型成員轉換成字符串 string str = Enum.GetName(typeof(Days), date);
  3. 枚舉轉換爲int類型 int date3 = (int)Days.Sat;
  4. 整型轉換爲枚舉類型 Days date1 = (Days)Enum.ToObject(typeof(Days), 1); / Days date2 = (Days)1;
 
二.結構體
 
結構體: 存放多個數據類型的容器 (數據類型能夠不相同)
2.1.定義格式:
訪問修飾符 struct 結構體類型名
{
    訪問修飾符  數據類型 變量名;
    訪問修飾符  數據類型  變量名;
    ...
}

public enum Gender
{
    M,
    W
}
public StudentInfo
{
    public string name;
    public int age;
    public Gender sex;
}

 

 
注意:
  1. struct 是關鍵字, 用來定義一個結構體類型;
  2. struct 後面纔是類型名, 類型名的每一個單詞首字母都要大寫;
  3. 結構體裏面每一個變量都是結構體類型StudentInfo的一個成員, 簡稱位成員變量;
  4. 結構體裏面的成員變量只聲明, 不賦值, 須要使用結構體變量來給其成員變量賦值;
  5. 每一個成員變量前面暫時使用public 關鍵字來修飾, public 是訪問修飾符, 成員變量前面只有使用public修飾, 才能夠在結構體外面被直接調用賦值.
2.2.結構體的使用
 
基本操做

 

說明:
  1. 使用結構體變量加上點運算符, 點出結構體中 public 修飾的成員, 而後再根據成員的數據類型給成員賦值;
  2. 結構體變量作爲一個總體不能直接參與運算, 須要使用變量包含的某個成員進行運算;
2.3.結構體數組
如上, 建立好結構體以後咱們定義了兩個對象, 而後用cw輸出; 試想, 若是咱們定義的對象有一百一千個, 當咱們想要輸出這些對象的數據時候咱們就得打一百一千行代碼, 這樣一來代碼就會很繁瑣. 如何優化呢? 咱們能夠用一個數組來存儲定義的各個對象, 而後就能夠經過對數組的遍歷 僅僅寫一個for/foreach 來取得數值.
 
 

 

注意:
1.在定義數組的時候. 由於咱們每一個元素都是結構體類型的, 因此數組的類型也必需要是結構體類型的!
2.item 獲得的是數組元素, 而每一個元素都是一個結構體, 所以不能直接把item打印出來;
 
2.4 結構體數組的排序
 
例如: 咱們有一個結構體裏面學生的基礎信息, 定義一個結構體類型的數組來存放n個學生的信息, 如今想要對該數組進行一個排序, 按照學生年齡的升序進行.
 
相關文章
相關標籤/搜索