C#學習筆記

C#學習筆記(一):數據類型 
C#數據類型分爲兩大類:數值類型和引用類型;
    一、數值類型包括:整型、字符型、布爾型、浮點類型、小數類型、結構、枚舉
        1、整數類型:byte、sbyte、short、ushort、int、uint、long、ulong,常用的是int;
        2、浮點類型:float、double;
        3、小數類型:dicemal;
        4、字符類型:char;
        5、布爾類型:bool;
    二、引用類型包括:字符串、數組、對象類型、類、接口、代理
        1、對象類型:object;
        2、字符串類型:string;
    三、賦初值
    四、類型轉換:隱式轉換、顯式轉換;打包轉換、拆包轉換
        1、隱式轉換:低級數據類型向高級數據類型轉換,結果爲高級數據類型;
        2、顯式轉換:造型(CAST)
        3、打包轉換和拆包轉換:堆(Heap)和棧(Stack)的區別;
    五、簡單數值類
        1、兩個域:MaxValue和MinValue;

C#學習筆記(二):運算符和表達式 
1、算術運算符
    1)++、--在變量左右的區別
    2)負號運算符:例如-3+-3等同於-3-3
2、邏輯運算符
3、關係運算符
4、其他運算符
    1)is運算符:x is int
    2)?:運算符:
    3)as運算符:
            object x = 5.4F;
            object y;
            y = x as float;
    4)typeof運算符:
5、checked和unchecked 

C#學習筆記(三):選擇和循環結構 
1、if語句
    1)if(...) 
    2)if(...) else
    3)if(...)
          else if(...)
          else if(...)
          else
    注意嵌套的判斷語句,從最內層開始,else總是和他最上面並且沒有配對的if語句配對
2、switch語句
    switch(...)
    {
       case ... :
       case ...:
       ...
       default:
    }
3、while語句
    while(...)
     {
        ....
      }
4、do-while語句
      do
        {
         ...
         }
      while(...)
5、for語句
     for(...;...;...)
       {
        ...
        }
6、foreach-in語句
     foreach( ... in ....)
       {
        .....
        }

C#學習筆記(四):數組 
1、一維數組
    1) int[] intArray = new int[10];
    2) int[] intArray;
        intArray = new int[10];
    3) int[] intArray = new int[10]{1,2,3,4,5,6,7,8,9,0};
    注意:不允許初始化部分元素,必須全部初始化
2、多維數組
    1) int[,] intArray = new int[3,2];
    2) int[,] intArray;
        intArray = new int[3,2];
    3) int[,] intArray = new int[3,2]{{0,1},{1,2},{2,3}}
3、嵌套數組
        int[][] intArray = new int[2][];
        intArray[0] = new int[2];
        intArray[1] = new int[3];
4、System.Array類
    1、屬性
        Length
        Rank
    2、方法
        Sort         Reverse
        IndexOf   LastIndexOf

C#學習筆記(五):面向對象和類 
面向對象
    1、數據封裝
    2、代碼重用
    3、多態性
    4、重載
命名空間
    using [alias=]namespace;
聲明自己的類
    1、封裝數據
        private int count;
        ... ...
    2、構造和析構
        構造:public 類名(...) {...},可存在多個
        ~類名:析構,一般不需要
    3、方法
使用自己的類

    靜態域:public static int field1;
    只讀域:public readonly int field1;
屬性
    修飾符 類型 標識符 {代碼}
    private string name;
    public string Name
        {
            get{rerurn name;}
            set{name = value;}
        }
索引
    修飾符 類型 this[索引值]
    private int[] Array = new int[5];
    public int this[int index]
        {
            get   
                {
                    rerurn Array[index];
                }
            set
                {
                    Array[index] = value;
                }
        }
重載
    關鍵是參數不一樣
    params:後面不能再有其他參數,因此一般是最後一個參數
    ref、out:實參前也必須加ref、out關鍵字,ref於out的區別在於out關鍵字不需要實參必須提前初始化
運算符重載
    語法:public static 返回類型 operator 運算符(參數){代碼}
    數據轉換也可重載
    語法:public static implicit operator 轉換後的類型(被轉換的數值)
                public static explicit operator 轉換後的類型(被轉換的數值) 

C#學習筆記(六):繼承 
繼承的初步
    1、派生:
            被繼承的類叫基類、父類,繼承而來的類叫派生類、子類
            class 子類名稱 : 父類名稱
                {
                .....
                }
            子類可以重載父類的方法,注意行參的不同
            在子類中構造新對象時,不僅要調用子類的構造器,還要調用父類的構造器,並且,這些被調用的構造器必須具有相應的參數列表
    2、base關鍵字
            子類可以利用父類的各種成員,但是子類只能利用父類中被聲明爲public和protected的成員
            base關鍵字是爲了在子類中替代父類的名稱
    3、禁止繼承
            封閉類的概念:sealed
            sealed關鍵字不僅可以用來聲明類,還可以用來聲明“封閉”的方法和屬性
    4、保護訪問
            protected關鍵字:只在類的繼承樹鏈上可見
    5、內部訪問
            internal關鍵字:在一個assembly內部可見
    6、成員訪問級別
            private:私有成員只能在聲明成員的類中使用
            protected internal:成員只能在同一個類及其子類中被使用,並且所有在類必須在一個assembly中
            internal:在一個assembly中訪問
            protected:只能在類繼承樹鏈上被訪問
            public:不受限制
多態性和虛成員
    1、在父類中利用virtual關鍵字來聲明虛成員,虛成員可以是類的方法、屬性和索引,不可以是域或者私有成員變量
    2、在子類中用override關鍵字來重新聲明虛成員
抽象類
    1、abstract關鍵字
    2、抽象方法不可以爲其實例化任何代碼,在方法聲明時,不可以在方法後使用{};
    3、抽象屬性需要指出屬性的get或者set部分,但是不能實例化任何代碼;
造型
        只允許用父類造型子類 

C#學習筆記(七):接口和代理 
接口
    1、接口的聲明
        1)語法:[修飾符] interface 接口名稱[:父接口名稱]{代碼};
        2)要點:
                a、聲明接口成員的時候,不可以爲接口成員指明任何訪問修飾符;
                b、不可以爲成員實例化任何代碼
    2、接口的使用
        1)使用一個接口只有通過類的繼承來實現
        2)子類不僅可以從父類繼承,還可以從接口繼承
        3)當一個類從接口繼承之後,必須在子類中實例化父接口中的所有成員
    3、接口與抽象類的比較
        1)在接口中,不能聲明域或者私有變量
        2)聲明接口成員時,不能使用任何訪問修飾符
        3)接口一旦被繼承,則在子類中必須實例化所有成員,而抽象類則可以根據需要重載部分成員
        4)接口允許多重繼承
        5)接口相對抽象類具有更高的抽象層次
    4、System命名空間的常用接口
        1)ICloneable:Clone方法
        2)IComparable:CompareTo方法
        3)IConvertable:
        4)IFormatable:Format方法
代理
    1、代理的聲明
        [修飾符]delegate 返回類型 代理名稱(參數列表);
    2、代理的使用
        使用new運算符創建一個代理對象,同時爲代理對象指明引用的方法名稱
    3、System.Delegate類
        Method和Target屬性
    4、事件
        修飾符 event 類型 標識符
        修飾符 event 類型 標識符{get{};set{};}
        聲明和使用一個事件需要如下步驟:
        1)創建一個代理或者使用系統代理:EventHandler
        2)在類的內部利用event關鍵字聲明事件,並在類中定義調用事件的方法
        3)聲明多個方法與事件關聯 

C#學習筆記(八):結構和枚舉 
結構
    1、結構的聲明
        [修飾符]struct 結構名稱[:接口名稱]{代碼};
        在結構中不允許存在沒有參數的構造體
    2、結構的使用
        1)Point p1 = new Point(1,1);
        2)Point p1;
    3、結構和類的區別
        1)結構不允許繼承
        2)結構中不允許聲明一個沒有參數的構造體
        3)在結構中不允許爲一個實例化的域賦初值
        4)利用結構類型來聲明對象的時候可以不使用new運算符
        5)結構是一種數值類型,而類是一種引用類型
枚舉
    1、枚舉的聲明
        [修飾符]enum 名稱[:各類整數類型]{列表};
        例子:public enum test:ulong {Main=1,Max=2};
    2、枚舉的使用
        從枚舉類型的數值向整數類型數值轉換需要使用顯式類型轉換
    3、System.Enum類
        1)Format方法
        2)FromString方法
        3)GetName方法和GetNames方法
        4)GetUnderlying方法
        5)GetValus方法
        6)IsDefined方法
        7)ToObject方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章