C#列舉型別、列舉型別與其他型別轉換、結構型別、陣列型別
阿新 • • 發佈:2019-02-15
1、C#中的常量用constant標定,不能改變或賦值;
2、列舉型別
[public ] enum 列舉名 // 訪問識別符號、列舉關鍵字、列舉名(符合Pascal命名規範)
{
值1,
值2,(最後這個英文半形,可有可無)
}
列舉型別的宣告:將列舉型別的宣告到名稱空間的下面,類的上面,所有名稱空間下面的類都可以使用此列舉型別;
列舉型別就是一個簡單的變數型別。
eg:
public enum Gender
{
男,
女
}
Gender gender=Gender.男;
3 列舉型別與其他型別的轉換:
//列舉型別預設為可以與int型別轉換,所以可以使用強制型別轉換。 //列舉型別---->int: int num=(int)gender; //可以得到num值為0,列舉型別中預設以0開始,可以改變。 //int---->列舉型別: int n=1;Gender gen=(Gender).n; //這裡可以得到gen='女';
注意:n值超過列舉值時,則保留原來的值,不進行轉換,系統不報錯。
列舉型別與string型別的轉換
注意:所有的型別都可以轉換為string型別,使用ToString()函式。
int n1=10;string str=n1.ToString();string str=Gender.'男'.ToString(); // 得到“男”這個字串
string---->enum型別: 將字元轉換為列舉型別,不能進行強制型別轉換,因為列舉型別不確定。使用函式Enum.Parse(): 相當於int.Parse()
(要轉換的列舉型別)Enum.Parse(typeof(要轉換的列舉型別),“要轉換的字串”);
string s="男";
Gender ge=(Gender)Enum.Parse(typeof(Gender),s); 注意:要轉換的字串在列舉型別中有輸出列舉值,否則會出現異常。
結構型別
1結構:可以一次性宣告多個不同型別的變數;
2
public struct 變數名
{
public string_name; (欄位)
public int _age;
public char_gender;
}
//相當於自定義了一個型別,結構和列舉都是自己定義的型別。若結構中的元素沒有public,則在類中無法訪問。
//結構中使用了欄位(用_(以下劃線開始)表示)。
欄位與變數的區別
陣列型別
1一次性宣告多個型別相同的變數-----陣列。
2 陣列型別[ ] 陣列名=new陣列型別 [陣列長度];// 表明了在記憶體中開闢了陣列長度個空間
int [ ] nums=new int [ 10 ]; 為賦值時,預設為0;
string [ ] strn=new string [ 10 ]未賦值時,為NULL,表明為在記憶體中開闢空間;string 陣列為空時,表明已開闢了空間。
bool [ ] bools=new bool [ 10 ] 位賦值時,預設為FALSE;
陣列型別的兩種使用初始化方式:
A: bool [ ] bools=new bool [ 10 ] ; bools={0,1,0,0}
B: bool [ ] bools={ 0,1,0,0 };