1. 程式人生 > >C#列舉型別、列舉型別與其他型別轉換、結構型別、陣列型別

C#列舉型別、列舉型別與其他型別轉換、結構型別、陣列型別

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  };