精品一区二区三区影院在线午夜_天天躁日日躁狠狠躁AV麻豆_国产午夜福利短视频_中文字幕乱偷无码AV先锋蜜桃_久久精品一二区东京热_国产成人亚洲日韩欧美久久久,国产成人精品久久一区二区三区

C#與C++對比總結之一,轉

C#與C++對比總結之一

by Minghui Li

1. 常量總是靜態(tài)的,不必也不允許使用static

2. C#中的引用。C#中非內置類(lèi)型或者自定的Class,都是引用類(lèi)型,要創(chuàng )建這樣的對象必須使用new,和C++有區別。

3. C#中的輸出語(yǔ)句:console.WriteLine(…);

4. string類(lèi)型:它雖然也是引用類(lèi)型,但是和普通的引用類(lèi)型有區別。如果兩個(gè)string對象指向相同的內存,當修改其中一個(gè)string,那么回創(chuàng )建一個(gè)全新的string,而另一個(gè)string不會(huì )發(fā)生變化。

5. @的作用:C#中采用和C/C++中相同的轉義字符,比較麻煩,可以在字符串前面加上@,表示字符串中的所有字符都看作是其原來(lái)的含義,如:@”C:\ProCShap\First.cs”

6. C#中的if語(yǔ)句中的條件必須是bool值,不能像C++中可以是整形

7. C#中有一種特殊的循環(huán):foreach

8. C#中的枚舉類(lèi)型和C/C++中的也有區別:訪(fǎng)問(wèn)枚舉值的時(shí)候需要采用成員訪(fǎng)問(wèn)的方式。另外可以獲得枚舉值的字符串表示(ToString),也可以從字符串獲得枚舉值(Enum.Parse())。

9. C#中數組的聲明和C++中的有區別:

§ Int[] intergers; // C#

§ Int intergers[]; // C++

10. C#中數組的初始化和C++中的區別:

§ Int[] intergers = new int[32]; // C#

§ Int intergers[32]; // C++

11. C#中的所有數組類(lèi)型都是引用類(lèi)型,和C++中的類(lèi)似,因為C++中的數組類(lèi)似一個(gè)指針。

12. C#的主程序入口:Main函數,其必須使類(lèi)或者結構的靜態(tài)成員函數。

13. 控制臺IO:

§ Console.Read()

§ Console.ReadLine()

§ Console.Write()

§ Console.WriteLine()

§ C#可以像C一樣格式化輸出

14. C#中的預處理器指令比C++的強大

15. 函數參數的問(wèn)題:

§ 當函數的參數是一個(gè)引用類(lèi)型

§ 當函數的參數是一個(gè)值類(lèi)型,但想讓其像引用類(lèi)型一樣工作,需要使用ref關(guān)鍵字聲明該函數(類(lèi)似于C++中的&語(yǔ)法):

Void SomeFunc(ref int i);

調用函數時(shí),該參數也要使用ref關(guān)鍵字(不同于C++):

SomeFunc( ref i );

§ out關(guān)鍵字:作為輸出參數,被引用的變量不需要被初始化。使用方法同ref。

16. C#不支持默認參數,不同于C++。

17. 類(lèi)中數據成員的默認初始化值為0或者false。不同于C++的隨機初始化。

18. 如果提供了帶參數的構造函數,編譯器不會(huì )自動(dòng)生成默認構造函數。

19. 靜態(tài)構造函數:C#中特有的,只執行一次,不能有參數,主要目的是為靜態(tài)字段或者屬性初始化。.net沒(méi)有確保類(lèi)的靜態(tài)構造函數何時(shí)執行,但一般是在第一次調用類(lèi)的成員之前執行。可以與無(wú)參數的實(shí)例構造函數共存。

20. 構造函數初始化器,類(lèi)似于C++中的初始化列表,但有很大區別。C#的構造函數初始化器只能調用其它的構造函數(如this,或者base),而C++的可以初始化數據成員。

21. C#的只讀字段

§ 是用readonly關(guān)鍵字修飾的字段。C++中沒(méi)有。

§ 只讀字段不同于const字段,只讀字段可以是實(shí)例字段,可以在實(shí)例初始化函數中初始化賦值,而在其它任何函數中不能改變。

§ 當然只讀字段也可以是靜態(tài)字段。

22. C#中的結構不同于C++。

§ C++中的結構和類(lèi)時(shí)等同的。

§ C#中的結構是值類(lèi)型的,一般是比較小的數據結構,存儲在棧中。但是可以使用new運算符。

§ C#中的結構不支持繼承。

§ 不允許定義無(wú)參數的構造函數,其是編譯器默認提供的,不允許被覆蓋。

23. System.Object中的方法:(感覺(jué)比較有用,但還不知道具體怎么使用?)

§ string ToString( )

§ Int GetHashTable()

§ Bool Equal(object obj) // 比較兩個(gè)對象是否相等

§ Bool Equal(object objA, object objB) // 同上

§ Bool ReferenceEquals(object objA, object objB)//比較兩個(gè)引用是否指向同一個(gè)對象

§ Type GetType() // 得到對象類(lèi)型的詳細信息

§ Object MemberwiseClone() // 進(jìn)行對象的淺表復制???

§ Void Finalize() // .net版本的析構函數

东丰县| 库尔勒市| 虹口区| 威远县| 泸溪县| 报价| 朔州市| 临湘市| 和平区| 荥阳市| 甘洛县| 安顺市| 城口县| 米林县| 广安市| 枞阳县| 沙坪坝区| 高淳县| 永兴县| 双柏县| 宜章县| 崇州市| 中江县| 安陆市| 平塘县| 万载县| 建瓯市| 闻喜县| 通渭县| 河北省| 曲水县| 乌兰浩特市| 惠水县| 绥中县| 安吉县| 中阳县| 疏附县| 石棉县| 昂仁县| 台东市| 娱乐|