c#的學習,是配合unity3d而一起學習的,接下來將記錄一些學習過程中的心得體會,以及一些筆記。
c#是微軟建立的物件導向的,簡潔安全的程式語言。以c/c++為語言基礎,開發的環境是visual studio,最新版本是c#4.0
c#必須在net.framework上執行,其包括公共語言執行庫,net.framework類庫
接下來介紹一些基本概念:
類:將具有同一性質的的物件抽象成乙個類,是一種邏輯抽象概念,可以包含各種成員變數,比如:字段,常量和方法
物件:物件是具體的事物,是類的例項,通過物件可以呼叫類的例項欄位和方法
方法:它是類的乙個成員,是包含一系列語句的**塊,可以改變物件的狀態
main()方法,稱之為主方法,是所有程式執行的入口,其餘的方法分為有引數和無引數兩種被呼叫,如果呼叫的是由引數的函式,那麼在呼叫的時候引數要進行傳遞
命名空間:定義了乙個宣告區域,提供了一種將一組名稱與另一組名稱進行區分的方法,乙個命名空間的宣告的名稱不會與另乙個命名空間的相同名稱衝突,使用using引入命名空間
c#擴充套件
多型性:乙個類在不同的方法中被呼叫,能夠呈現不同的結果
介面:介面和類是類似的,但是介面僅僅是描述一種規範,不具體實現這些規範
c#型別的分類
值型別:它是變數直接包含資料,儲存的是資料,它的值不是null,型別一般是結構型別或者列舉型別
指標型別:只用在不安全的**中,一般不常用
1.值型別的基礎是system.valuetype
3.3引用型別
引用型別的變數也成為物件,有六種型別:
(1)物件型別
(2)字串型別
(3)類型別
(4)陣列型別
(5)介面型別
(6)委託型別
在使用引用型別的變數的之前,要先判斷該變數的值是不是null。如果是的話就不能直接訪問
1.類型別:支援繼承機制
2.物件型別:內建的引用型別,即system.object
3.字串型別:表示零或者更多的unicode字元組成的序列,對應著system.string,使用雙引號建立,一旦被建立它的建立的記憶體中的內容就不能被修改,要改變值只能夠重新分配一塊新的記憶體
4.陣列型別:在宣告陣列的時候,元素型別之後要緊跟著中括號
5.介面型別:介面只是一種資料結構,可以宣告資料成員和函式成員,它只能聲屬性,方法和事件,但是不能實現這些屬性,方法和事件
6.委託型別:它能夠引用乙個或者多個的方法,能夠將方法作為引數進行傳遞,並且還可以定義**方法
3.4裝箱和拆箱
作用:值型別和引用型別的值的相互轉換
引用型別總被分配在託管堆上,值型別被分配在堆疊上
1.裝箱:將值型別轉換為引用型別,具體過程是:首先分配乙個物件例項,然後將值型別的值複製到該例項中,對於引用例項來說,裝箱前後都共享同乙個例項
四種常見的裝箱:
(1)值型別到object型別
(2)值型別到system.valuetype型別
(3)值型別到值型別實現的介面型別
(4)列舉型別到system.enum型別
2.拆箱:將引用型別轉換為值型別,具體的過程是:檢查改物件例項是否為給定值型別的乙個裝了箱的值,將值從例項中複製出來(比裝箱多了檢查那一步)
四種常見的拆箱:
就是把前面的裝箱的過程反過
system.valuetype的三種方法:
(1)equals():判定當前的例項和指定的物件是否相等
(2)gethashcode():返回當前例項的雜湊**
(3)tostring():返回當前的變數的字串形式
2.整數型別
(1)int 整數的32位,範圍是-2^32~2^32-1
(2)long 整數的64位,範圍是-2^64~2^64-1
(3)char 16位的unicode,可以隱式的轉換為整數,定義的時候要用單引號括起來
3.浮點型別
兩種浮點型別:單精度浮點(float)和雙精度浮點(double)
非數字的時候被縮寫成nan
在直接的書寫float型別的時候,要在數值的後面加上f或者f
在直接的書寫double型別的時候,要在數值的後面加上d或者d
4.decimal型別
表示財務計算和貨幣計算,表示128位的計算
在浮點型和decimal之間不存在隱式的轉換,因為後者比前者的精度更高, 但是範圍更小
在書寫的時候需要在後面加上m
不支援有符號的0,無窮大和nan
5.bool型別
布林型別只有兩種值:true或者false
布林型別和其他值之前不存在任何標準轉換
6.列舉型別
把一組相同型別,表達固定含義的資料作為乙個集合放到一起
一般包含乙個或者多個列舉值,每個列舉值之間用逗號隔開,預設的基礎類 型是int
7.結構型別
是一組相關資訊組合成的單一實體
一些C 筆記
this指標 類的繼承 基類 父類 子類 如果基類和子類都有構造器,則基類的構造器會先被呼叫。class animal class pig public animal animal animal std string thename pig pig std string thename animal...
C 一些初步知識
函式的過載 c 允許在同一作用域中用同乙個函式名定義多個函式,這些函式的引數個數和引數型別不同,這些同名的函式用來實現不同的功能,這就是函式的過載,即乙個函式名多用。例 int max int a,int b,int c float max float a,float b,float c long ...
C一些知識總結
1.switch 其中括號中的引數為數字型變數即 整型 字元型 列舉型別 2.include表示從庫函式數中查詢,而 include stdio.h 表示先查詢使用者自定義的標頭檔案,找不到再到庫函式中找。3.exit是乙個庫函式,用於結束乙個程式或程序。而exit 1 表示發生錯誤後退出,exit...