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方法
C#學習筆記
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
C# 基於SharpPcap的局域網數據包捕獲 之二 監聽代碼
優惠碼大使
2019-02-24 19:41:12
[C#]“冒泡排序”示例代碼
五子連星
2019-02-23 13:23:12
Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization
soda119
2019-02-23 13:17:01
CentOS下設置網卡的工作模式的例子
zwyffs
2019-02-23 12:55:52
Cisco VRRP configuration
Yeexw
2019-02-23 12:55:22
標準控制訪問列表的實現
小雞變鳥
2019-02-23 00:41:50
交換機SPAN功能配置
novlqq
2019-02-23 00:34:27
nagios學習手札
3543772
2019-02-23 13:51:43
關於System Volume Information佔用的大量磁盤空間
781732825
2019-02-23 13:39:40
利用RAID保護數據
Aslfe
2019-02-23 13:05:53
電腦機箱保養常識
shenjianyangui
2019-02-23 13:02:24
Centos7 修改運行級別
wxl_xiao5
2019-02-23 00:42:28
linux系統啓動流程
戰狼戰神
2019-02-23 00:40:06