C 基礎總結

2021-07-03 15:47:17 字數 2672 閱讀 7510

1、在字串前加乙個@字元,「」中特殊字元可以不用轉義

2、關鍵字checked和unchecked對表示式進行溢位檢查

3、foreach迴圈遍歷陣列

4、多維陣列宣告:[,,,]; 矩形陣列,不同維度之間用逗號隔開

5、鋸齒陣列(jagged array)宣告如下:int jaggedintarray;初始化如下:jaggedintarray=new int[2]; jaggedintarray[0]=new int[3]; jaggedintarray[1]=new int[4];

遍歷時必須迴圈遍歷每個子陣列和陣列本身。

7、委託是一種可以吧引用儲存為函式的型別,一般用於事件和事件處理

定義:delegate void processdelegate(double param1);

宣告乙個函式 void delegatefunction(double param1)

呼叫:processdelegate process=new processdelegate(delegatefunction); process(param1); 

predicate 泛型委託

表示定義一組條件並確定指定物件是否符合這些條件的方法。此委託由 array 和 list 類的幾種方法使用,用於在集合中搜尋元素。

public delegate bool predicate(t obj);

型別引數介紹:

t:要比較的物件的型別。

obj: 

要按照由此委託表示的方法中定義的條件進行比較的物件。

返回值:如果 

obj符合由此委託表示的方法中定義的條件,則為 

true

;否則為 

false

。8、基類可以定義為抽象類,抽象類不能直接例項化;

9、預設情況下,類宣告為內部的,可以使用internal修飾符顯示指定,只有當前專案才可以訪問。public指定的為公共類,其他專案**也可訪問;abstract 抽象類,不能例項化,只能繼承,可以有抽象成員;sealed 密封類,不能繼承,對密封類的例項的虛函式可轉換為非虛函式來處理。

10、c#類定義中,只能有乙個基類,如果繼承了乙個抽象類,必須實現繼承的所有抽象成員。編譯器不允許派生類的可訪問性高於基類,即內部類可繼承公共基類,但公共基類不能繼承內部類。c#所有類都繼承於system.object類。

11、結構型別是值型別(深度複製),而類是引用型別(淺複製、指標)

12、類中屬性可使用訪問器get/set訪問

13、隱藏基類方法,可以在方法前加new關鍵字顯示隱藏:例:new public void func(){}

14、可以使用base關鍵字訪問基類方法

15、比較: 

1)型別比較:

(1)gettype()方法或typeof()運算子;

(2)is運算子:檢查物件是否給定型別或是否可以轉換為給定型別,語法如下:is ;

(3)封箱(boxing)和拆箱(unboxing)

物件導向中封箱是指將非物件型別的數值或資料報裝成物件型別;拆箱是指將物件型別轉換為非物件的數值或資料。

c#中封箱是指將值型別轉換為system.object型別或有值型別實現的介面型別;拆箱與之相反。封箱是隱式轉換,而拆箱需要手動顯示轉換。

例:如下結構型別:

//定義結構體

struct mystruct

mystruct valtype1=new mystruct(); //定義變數valtype1

valtype1.val=5; //賦值

object reftype=valtype1; //封箱

mystruct valtype2=(mystruct)reftype; //拆箱

也可以把值型別轉換為介面型別,但要實現該介面,舉例如下:
inte***ce myinte***ce

struct mystruct:myinte***ce

mystruct valtype1=new mystruct();

myinte***ce reftype=valtype1; //封箱

mystruct valtype2=(mystruct)reftype; //拆箱

封箱的作用:
保證項的型別是object的集合(如arraylist)中使用值型別;

有乙個內部機制允許在值型別上呼叫object方法,如int和結構。

2)值比較

16、轉換:as運算子把一種型別轉換為指定的引用型別,不能正常轉換則返回null。語法如下:as

適用情況:1)的型別是型別;2)可隱式轉換為型別 ;3)可封箱到型別

17、集合 

system.collections命名空間提供介面

arraylist:collection base類,這個抽象類提供了集合類的許多實現方式,可以繼承該類實現自己的集合類

ilist

idictionary:關鍵字值集合,基類dictionarybase

迭代器:ienumerable介面負責使用foreach迴圈,呼叫getenumerator()獲取乙個ienumerator引用,e.movenext()方法遍歷,e.current屬性獲取物件的引用

C 基礎總結

1.類的介面呼叫順序不能規定順序 即以任何順序呼叫都不應發生異常。2.當乙個類的物件超出其作用域時,編譯器即會呼叫其析構函式.cout end 在cout end 之前,會看到類test的析構函式的輸出.由彙編 也可看出test test 的呼叫.3.string string的c str 實際上返...

c 基礎總結

一 c 程式結構 命名空間 c 程式是利用命名空間組織起來的。如果要呼叫某個命名空間中的類或者方法,首先要使用using 指令來引入命名空間,using指令的基本形式為 using 命名空間 eg 類 類是一種資料結構,它可以封裝資料成員 函式成員和其他成員 類修飾符 class 類名 main方法...

C 基礎總結

explicit 函式棧框架 decltype推導四準則 通用引用 型別轉換 系統呼叫 函式指標作用 typedef const double p fun const double d p fun是一種typename,而不是函式指標 void fun int arg void void 返回值為v...