C#基礎小結
一、變量和常量
a) 關鍵字:const
b) 變量命名:駱駝命名法
c) 常量:關鍵字 const 規範 全大寫
二、訪問修飾符
a) Public: 可見性:公開的(全部項目)
b) Inernal: 可見性:本項目
c) Protected:可見性:受保護的(可以通過繼承調用該類受保護的屬性和方法)
d) Private: 可見性:私有的(僅本類可見)
三、數據類型
a) 結構:
名稱 |
默認值 |
int |
0 |
Short |
0 |
bool |
false |
char |
空字符串 |
float |
0.0f |
Double |
0.0D |
b) 類:
名稱 |
默認值 |
String |
null |
四、值/引用類型
a) 值類型:傳值傳副本
i. Int float bool short char Double long
ii. 枚舉
b) 引用類型:傳值傳地址
c) 值類型和應用類型的區別
i. 值類型: 父類是valueType
ii. 引用類型:非valueType類型
d) 值類型不需垃圾回收,引用類型需垃圾回收
五、裝箱和拆箱
a) 裝箱: 將值變成object
b) 拆箱: 將object 變成值
c) 裝拆箱的條件:必須是相同類型才能拆箱即無論怎樣值的類型裝箱前和拆箱後是相同的
d) 注意:裝拆箱有性能損耗
六、運算符
運算符列表 |
? : |
* |
% |
/ |
+ |
- |
++ |
-- |
七、傳參問題
ref 傳參 需初始化變量
out 傳參 不需初始化變量
params:無限長度的動態數組
八、Switch結構:
a) 數據類型:int char string
b) case 下的語句後必須加 break
九、循環
foreach(數據類型 變量 in 集合){
}
十、數組
a) 定義方式:
Int[] a={1,2,3}
Int [] q =new int[2];
q[0]=1;
q[1]=2;
int[] u=new int[2]{1,2};
int[] i=new int[]{1,2}
十一、 結構(關鍵字: strut)
a) 結構不能有無參構造
b) 可以有顯示的有參構造
c) 結構不能夠初始化變量(全局變量不能夠直接初始化)
(必須用構造初始化)
d) 系統永遠會分配一個無參的構造函數給結構
e) 結構用法
a) 直接使用
b) 可以用new 關鍵字實例化也可不實例化
f) 結構不能夠繼承也不能夠被繼承
g) 結構可以實現接口
十二、 枚舉: 值類型
a) 關鍵字: enum
b) 作用: 規範用戶輸入
c) 格式:enum 枚舉名
{
數字,字母等
}
d) 例:
enum aa
{
a,b,c
}
Enum bb
{
A=1,
B=2
}
e) 枚舉只能定義在類中或命名空間下
十三、 類和對象
a) 類 對事物的一種描述
b) 對象 該事物的具體體現
c) 類的屬性:(封裝了字段)
1) 類的默認訪問屬性是internal
2) 類成員如果不寫訪問修飾符爲私有的
3) 與類平級的訪問修飾符爲internal 如 enum
4) 屬性的作用:對字段進行訪問和保護
5) 注意:1,、屬性的數據類型必須與相對應的字段名一致
2、屬性名必須遵守帕斯卡命名規則
6) 屬性的分類
1、讀寫屬性 get set
2、只讀屬性 get 用構造賦值
3、只寫 set
4、靜態 用static 修飾
十四、 方法
a) 分類:
靜態方法 (類)
實例方法 (對象)
b) 命名:
在.Net中 除字段外的其餘都爲帕斯卡命名法
c) 注意:
不能在靜態的類中創建類的實例
d) 靜態方法和實例方法的區別
1) 靜態方法:
Static關鍵字修飾
使用類名調用
可以訪問靜態成員
不可以直接訪問實例成員
不可以直接調用實例方法
調用前初始化
2) 實例方法
不需static關鍵字修飾
使用實例對象調用
可以直接訪問靜態成員
可以直接訪問實例成員
實例化對象時初始化
十五 、方法的重載
1) 環境 :本類中的方法
2) 特點:方法名相同
參數類型不一致或參數個數不一致
與返回值無關
3) 好處:便於代碼的管理
4) 注意: 重載時多態的一種
十六、 構造函數:
1) 構造函數的重載(構造函數也叫構造方法)
2) 特殊方法:
Public 名稱(){
}
3) 名稱必須與類名相同
4) 可重載但無返回類型
5) 作用: 創建對象開闢內存空間
初始化參數
十七、 繼承
1) 好處:提高代碼的複用性
2) 關鍵字 :
3) 構造函數:
調用父類的屬性方法 base關鍵字
父類若有構造函數子類必須向父類傳參
Eg Tigger(int I,int b,String a) : base(a)
4) 重寫
父類的方法用virtul 修飾 子類用override 重寫
5) 隱藏
父類有方法沒有修飾 在子類的相同方法前加new 修飾
6) 重寫和隱藏的區別
父 對象=new 子();
李氏替換原則 : 點出的方法只有兩種一是隱藏二是重寫
重寫方法點出的是子類的方法
隱藏方法點出的是父類的方法
十八、 抽象類(全部都是父類)
1) 關鍵字 abstruct
2) 抽象方法不能有方法體
3) 含有抽象方法的類一定是抽象類反之不成立
4) 抽象類不一定含有抽象方法
5) 抽象類不能實例化
6) 子類繼承一個抽象類一種是完全重寫抽象方法,一種是子類繼承抽象
十九、 密封類
1) 關鍵字:sealed
2) 作用: 可以密封類和類的方法
3) 注意:密封類 類不能被繼承,方法不能被重寫
二十、 接口
1) 關鍵字 Interface
2) 接口不能被實例化
3) 接口中可以包含屬性方法和事件 隱式公開不能用public 修飾
4) 接口中成員不能有具體實現
5) 接口是多繼承的
6) 接口分爲隱式實現和顯式實現
顯示實現:必須通過接口接收此對象才能看到相應方法
隱式實現:不需通過接口接收此對象也能看到方法
7) 接口規範必須以I開頭