C#語言讀書心得備忘
這本書講解C#語言十分詳細(xì),我將其中的重要內(nèi)容整理成條款,以備忘。
1.C#程序就是一組類型聲明,命名空間是一種把相關(guān)的類型聲明分組并且命名的方法,所以既然程序是一組相關(guān)的類型聲明,那么通常會把程序聲明在創(chuàng)建的命名空間內(nèi)部。
2. C#語言提供了15種預(yù)定義類型,包括13種簡單類型和2種非簡單類型,所有預(yù)定義類型都由全小寫字母組成,它們會被直接映射到.NET中相應(yīng)的類型(這些類型是首字母大寫的),其實(shí)C#中的類型名稱就是.NET類型的別名,另外:與C不C++同,在C#中的數(shù)值類型不具有布爾意義。
3. 程序運(yùn)行時,它的數(shù)據(jù)必須存儲在內(nèi)存中。堆是一塊內(nèi)存區(qū)域,在堆里可以分配大塊的內(nèi)存用于存儲類型的數(shù)據(jù)。堆中的內(nèi)存可以以任意順序存入和移除。一個數(shù)據(jù)項(xiàng)所需內(nèi)存的大小、存儲位置、以及如何存儲都依賴于該數(shù)據(jù)項(xiàng)的類型。
4. 數(shù)據(jù)的類型決定了對象在內(nèi)存中的存儲位置——?;蚨?。類型被分為兩種:值類型和引用類型,值類型只需要一段單獨(dú)的內(nèi)存,用于存儲實(shí)際的數(shù)據(jù);引用類型需要兩塊內(nèi)存:第一段存儲實(shí)際的數(shù)據(jù)(對象本身),它總是位于堆中。第二段是一個引用(對象的引用),指向數(shù)據(jù)在堆中的存放位置。
5. 對于一個引用類型,它的實(shí)例的數(shù)據(jù)部分始終存放在堆里,無論這些數(shù)據(jù)是值類型還是引用類型,抑或是引用類型的引用部分。
6. 變量是一個名稱,表示程序執(zhí)行時存儲在內(nèi)存中的數(shù)據(jù)。無初始化語句的局部變量有一個未定義的值,在未賦值之前不能使用,如果未賦值就使用會導(dǎo)致編譯錯誤。
7. 某些類型的變量如果在聲明時沒有初始化語句,則會被自動設(shè)為默認(rèn)值,如:類字段、結(jié)構(gòu)字段、數(shù)組元素,而另一些則不能,如:局部變量和參數(shù)。
8. 類是一個能存儲數(shù)據(jù)并執(zhí)行代碼的數(shù)據(jù)結(jié)構(gòu),是邏輯相關(guān)的數(shù)據(jù)和函數(shù)的封裝,通常代表真實(shí)世界中的或概念上的事物。一個C#語言類中可以有任意數(shù)目的數(shù)據(jù)成員和函數(shù)成員,成員可以是下面成員類型的任意組合:
9. 類成員可以在類主體內(nèi)部以任何順序聲明,成員的聲明完全可以引用另一個在后面的類聲明中才定義的成員,所有的字段都要在類型聲明內(nèi)部聲明。
10. 字段初始化是聲明的一部分,用來初始化的值必須是編譯期可決定的,如果沒有初始化語句,字段的值會被編譯器設(shè)為默認(rèn)值,即:數(shù)值類型默認(rèn)值為0,bool型是false,引用類型為null。(C++中不允許初始化類的成員變量)
11. 當(dāng)方法被調(diào)用時,它執(zhí)行自己所含的代碼,然后返回到調(diào)用它的代碼,并返回零到多個值到它被調(diào)用的位置。
12.聲明類類型的變量所分配的內(nèi)存是用來保存引用的,如果要為實(shí)際數(shù)據(jù)分配內(nèi)存,需要使用new運(yùn)算符,new運(yùn)算符為任意指定類型的實(shí)例分配并初始化內(nèi)存。
13. 私有成員只能從聲明它的類的內(nèi)部訪問,其他的類不能看到或訪問它們。私有訪問是默認(rèn)的訪問級別。類內(nèi)部的成員可以自由地相互訪問。
《C#圖解教程》讀書心得C#語言的第二部分內(nèi)容就介紹到這里。【編輯推薦】