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反序列化