.NET學習之面向對象總結

1、命名規範
  Camel駱駝命名規範:變量、字段(類成員變量)  int age;int _chinese(字段)
  Pascal:類或者方法 GetMax  GetSum 

2、封裝、繼承、多態
  ***字段:存儲數據,訪問修飾符應該設置爲private
  ***屬性:保護字段,對字段的取值和賦值進行限定。
  ***this關鍵字:1)代表當前類的對象  2)調用自己的構造函數
  ***return:1)立即結束本次方法  2)在方法中返回要返回的值

3、繼承
  1)單根性  2)傳遞性

4、里氏轉換
  1)子類可以賦值給父類
  2)如果父類中裝的是子類對象,那麼可以將這個父類轉換爲子類對象。
    as(對應的對象/null)   is(true/false)

5、值類型:結構體(數值類型,bool類型)、枚舉類型、可空類型
   引用類型:數組,用戶定義的類、接口、委託,object,字符串
   裝箱:就是將值類型轉換爲引用類型
   拆箱:就是將引用類型轉換爲值類型。  
   拆箱或者裝箱的兩種類型必須具有繼承關係

6、new
   1)創建對象
   2)隱藏從父類繼承過來的成員

7、interface接口
   1)表示一種能力,可以實現多態,,父類在前,接口在後
   2)接口中成員不能有任何的修飾符,默認爲public
   3)接口中只能包括方法(屬性、事件、索引器)

8、自動屬性
   自動屬性是不對字段進行邏輯驗證的操作

9、字符串
   1)不可變性
   2)字符串可以看做是char類型的只讀數組
    string.IsNullOrEmpty(st1): true/false 判斷是""或null
    s.ToCharArray  轉成字符數組(可寫了),再new string(chs)
    s.Substring()  截取某段字符串
    s.Split(new Char[{',','/'},StringSplitOptions.Rem..)
    s.Join("|",數組);
    3)null沒有分配空間,不是對象(==)
       ""分配了空間,已經實例化(equals)

10、StringBuilder
    1)當大量進行字符串操作的時候,比如,很多次的字符串的拼接操作
    2)StringBuilder僅僅是拼接字符串的工具,大多數情況下還需要把StringBuilder轉換爲String.

11、集合
    ArrayList
    Hashtable
    List<T>
    Dictionary<TKey,TValue>

12、Person p1=new Person();
    p1.Name="張三";
    Person p2=p1;
    p2.Name="李四";   //最後p1,p2都是李四,p1p2都指向堆中同個地方

13、顯式轉換
    1)(int)變量名,數字類型long->int
    2)int.Parse(string類型),
    3)int.TryParse(string s,out int result),
    4)Convert.Toint32(),還可將其他類型轉換成int,同強制轉換一樣,不能用來處理char類型,否則傳回的是ASCII代碼。

Object => 已知引用類型 ,使用as操作符來完成
Object => 已知值類型,先使用is操作符來進行判斷,再用類型強轉方式進行轉換

14、結構和類
   1)類當中寫了一個新的構造函數之後,默認的無參數的就被幹掉了。但是在結構中,寫了一個新的構造函數之後,默認的那個無參數的還在。
在結構的構造函數當中,必須給所有的字段賦值。
只能有兩個構造函數,一個是默認的無參數的構造函數,一個是全參數的構造函數。
   2)結構的new關鍵字只幹了一件事兒,就是調用結構的構造函數,在棧中開空間。
   3)如果不給結構創建對象的話,不允許調用結構中的非靜態方法。

   4)Convert.Toint32(),還可將其他類型轉換成int,同強制轉換一樣,不能用來處理char類型,否則傳回的是ASCII代碼。
    

     Object => 已知引用類型 ,使用as操作符來完成
     Object => 已知值類型,先使用is操作符來進行判斷,再用類型強轉方式進行轉換
15、結構和類
   1)類當中寫了一個新的構造函數之後,默認的無參數的就被幹掉了。但是在結構中,寫了一個新的構造函數之後,默認的那個無參數的還在。
在結構的構造函數當中,必須給所有的字段賦值。
只能有兩個構造函數,一個是默認的無參數的構造函數,一個是全參數的構造函數。
   2)結構的new關鍵字只幹了一件事兒,就是調用結構的構造函數,在棧中開空間。
   3)如果不給結構創建對象的話,不允許調用結構中的非靜態方法。
16、File讀數據都是一次性讀進去,對內存消耗比較嚴重
        Directory操作目錄的
    1)GetFiles獲取指定文件夾下文件的全路徑
         FileStream操作字節的
         StreamReader操作字符的
17、序列化和反序列化
    //要將序列化對象的類 標記爲可以被序列化的,序列化成二進制
    1)[Serializeble],Binarymatter的Serialize
    2)Deserialize反序列化


















 

發佈了30 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章