1. 程式人生 > >學習筆記之C#常量、列舉、結構、索引器

學習筆記之C#常量、列舉、結構、索引器

一、常量(Const)

語法:const 常量型別 常量名 = 常量值;//常量只有在初始化的時候可以賦值

二、列舉(Enum)

定義一種型別,並且在定義時我們要指定這個型別的所有值

(一)語法

enum 自己起的型別名稱{值1,值2,值3...值n};

如:

enum 自己起的型別名稱{值1,值2,值3...值n};

如:enum Gender

{

男,

女

}

//使用時如下

Gender sex;

sex = Gender.男;

(二)注意

1.列舉的定義,一般和定義類在同一個級別。這樣,在同一個名稱空間下的所有類都可以使用這個列舉

2.定義列舉時,列舉的值不能用int型別

3.列舉的變數都可以強制轉換成int

,因為列舉的值在定義時是有一個預設編號的,編號從0開始

4.可以在列舉中的值後面加編號,如

enum Gender

{

男=1;

女=2;
}

(三)作用

1.限制使用者不能隨意賦值,只能在列舉的值中選擇

2.不需要死記每一個值,只需要選擇相應的值

(四)字串轉換為列舉

(自己定義的列舉型別)(Enum.Parse(typeof(自己定義的列舉型別),"待轉換的字串"));

如:(Gender)(Enum.Parse(typeof(Gender),s));

三、結構(Strut)

結構是值型別,常用來封裝小型變數組

(一)語法

訪問修飾符 struct 結構名

{

定義結構成員

}

    struct Rectangle
    {
        public int length;
        public int width;
        public int[] arr;
        public Rectangle(int length, int width,int[] arr)
        {
            this.length = length;
            this.width = width;
            this.arr = arr;
        }
        public int Area()//計算面積方法
        {
            return length * width;
        }
        public int this[int index]
        {
            get 
            {
                if (index < arr.Length - 1)
                {
                    return arr[index];
                }
                else
                {
                    throw new Exception("索引器長度溢位!");
                }
            }
        }

(二)特點

1.結構為值型別,儲存在棧中,所以結構的初始化可以不用new關鍵字

2.結構讀取的效率高,但是容量小

3.結構中的非靜態欄位不能在結構中被初始化

4.結構可以有索引器、方法、構造引數,但是若為結構過載建構函式,則在建構函式中為所有欄位初始化

5.結構中的欄位一般可以定義為public

(二)作用

1.解決變數重重複的問題

2.變數名不會記混

四、計算機單位

1.計算機中最小單位叫“位”(bit,位元),表示一個二進位制位

2.一個一個處理二進位制位太慢,表示的資訊太小,於是把8個二進位制位分成一組,那麼8個二進位制位叫做位元組(Byte),計算機能夠處理的最小單位。(0-255,255在十六進位制中為FF)

1B=8b

1KB=1024B

1MB=1024KB

bps(bit per second)網路頻寬

五、索引器

允許類或結構的例項按照與陣列相同的方式進行索引

(一)宣告語法

public int this[引數列表]{get{ };set{ };}

(二)注意

1.索引器可以被過載

2.引數列表可以為多項,多種型別

3.返回值型別不限

class Sample
    {
        private int[] arr=new int[100];
        public int this[int index]
        {
            get
            {
                return arr[index];
            }
            set
            {
                arr[index] = value;
            }
        }
        
    } 
class Program
    {
        static void Main(string[] args)
        {
            Sample s1 = new Sample();
            int i = s1[0];
            Console.WriteLine(i);
            Console.ReadKey();
        }
    }