【黑馬程序員】2.C#基礎之常量 枚舉 結構

---------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------

1、 常量

常量就是在程序執行過程中不可改變的量。C#中定義常量用用const關鍵字。

基本語法:

                              const  數據類型 變量名 = ;

如:                      

             const double PI = 3.14;


const常量不能被static修飾。

2、 枚舉

枚舉是一種值類型。它定義了一種新的數據類型。

基本語法:

                           訪問修飾符 enum 枚舉名

                           {

                                    枚舉成員;

                           }

枚舉的定義一般和類定義在同一個級別。這樣,在同一個命名空間下的所有類都可以使用定義的枚舉。方法中或類中也可以定義枚舉。

枚舉的作用:

1) 限制用戶不能隨意賦值,只能使用定義枚舉時列舉出來的枚舉成員

2) 不需要死記每一個枚舉成員的值是多少,而只需要選擇相應的值就可以了。通過“枚舉名.成員名”來引用枚舉成員。

注意事項:

1) 定義枚舉時,枚舉成員的值不能是int

2) 枚舉類型的成員變量都可以強制轉換成一個int類型

3) 枚舉的值在定義時是有一個默認編號的,在枚舉類型中聲明的第一個枚舉成員它的默編號爲零,之後的每一個枚舉成員的編號是它前一個成員編號加1

 

把一個字符串轉換成枚舉類型:

                             (自枚)(Enum.Parsetypeof(自枚),”待轉換字符串;

自枚:即自定義的枚舉類型名 

例:

                namespace blog2
                {
                     enum gender //定義一種枚舉類型gender
                     {
                           男, 女/枚舉成員
                         }
                     class Program
                     {
                        static void Main(string[] args)
                        {
                            gender sex1, sex2;
                            string str="男";
                            sex1 = (gender)(Enum.Parse(typeof(gender), str));
                            sex2=gender.女;
                            Console.WriteLine("sex1={0}\tsex2={1}",sex1,sex2);
                            Console.ReadKey();
                        }
                     }
                }       

輸出:

3、 結構

基本語法:

                            訪問修飾符 struct 結構名

                            {

                                     結構成員;

                            }

注意事項:

1)結構是一種值類型,並且不需要堆分配。結構的實例化可以不用new關鍵字。

2)結構是使用struct關鍵字定義的,與類相似,結構中可以包含數據成員和函數成員的數據結構。

3)在結構聲明中,除非字段被聲明爲conststatic,否則無法初始化;

4)在結構聲明中不允許使用abstractsealed修飾符。

5)結構不能聲明默認構造函數(沒有參數的構造函數)或析構函數,但可以聲明帶參數的構造函數。結構可以實現接口,但不能從另一個結構或類繼承,而且不能作爲一個類的基,所有結構都直接繼承自 System.ValueType

6)結構在賦值時進行復制。將結構賦值給新變量時,將複製所有數據,並且對新副本所做的任何修改不會更改原始的數據。

例:

        namespace blog2
        {
            public enum gender //定義一種枚舉類型gender
            {
                男, 女    //枚舉成員
              }
            public struct Student//定義一個結構類型Student
            {
                public string name; //不能直接對其進行賦值
                   public int age;
                public static gender sex=gender.男;//靜態變量可以初始化
                   public Student(stringName, intAge) //帶參數的構造函數
                   {
                    this.name=Name;
                    age=Age;
                    sex=gender.男;
                }
            }
            class Program
            {    
                static void Main(string[] args)
                {
                    Student student=newStudent("張三",18) ;
                    Console.WriteLine("我叫{0},是個{1}孩,{2}歲啦!",student.name,gender.男,student.age);
                    Console.ReadKey();
                }
            }
        }

輸出:

---------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------

詳細請查看:http://edu.csdn.net

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章