核心c#:
值型別儲存在堆疊中,而引用型別儲存在託管堆上。
object型別可以用於兩個目的:
可以使用object引用繫結任何子型別的物件
object型別執行許多一般用途的基本方法,包括equals(), gethashcode(), gettype()和tostring().
在c#中,switch語句的case子句的排放順序是無關緊要的,甚至可以把default子句放在最前面,因此,任何兩條case都不能相同,這包括值相同的不同常量。
foreach迴圈不能改變集合中各項的值.
goto語句的限制:不能跳轉到像for迴圈這樣的**塊中,也不能跳出類的範圍,不能退出try…catch塊後面的finally塊。
break用於退出判斷(switch語句)或者迴圈(for, foreach, while等)語句,該語句會使控制流執行迴圈後面的語句。
continue語句也必須在迴圈中使用,但它只退出迴圈的當前迭代,開始執行迴圈的下一次迭代,而不是退出迴圈。
物件和型別:
結構和類的區別是它們在記憶體中的儲存方式、訪問方式(類是儲存在堆上的引用型別,而結構是儲存在棧上的值型別)和它們的一些特徵(如結構不支援繼承)。
引數可以是可選的,必須為可選引數提供預設值,且可選引數必須是方法定義的最後乙個引數。
無引數的例項建構函式與靜態建構函式可以在同乙個類中同時定義,儘管引數列表相同,但這並不矛盾,因為在載入類時執行靜態建構函式,而在建立例項時執行例項建構函式,所以何時執行哪個建構函式不會有衝突。
readonly關鍵字比const靈活得多,允許把乙個字段設定為常量,但還需要執行一些計算,以確定它的初始值。其規則是可以在建構函式中給唯讀字段賦值,但不能在其他地方賦值。唯讀欄位還可以是乙個例項字段,而不是靜態字段,類的每個例項可以有不同的值。
在建構函式中不必給唯讀字段賦值,如果沒有賦值,它的值就是其特定資料型別的預設值,或者在宣告時給它初始化的值。這適用於唯讀的靜態欄位和例項字段。
擴充套件方法允許改變乙個類,但不需要該類的源**。它是靜態方法,是類的一部分,但實際上沒有放在類的源**中。對於擴充套件方法,第乙個引數是要擴充套件的型別,放在this關鍵字後面。可以訪問擴充套件型別的所有公有方法和屬性。
繼承:
實現繼承:表示乙個型別派生於乙個基型別,擁有該基類的所有成員欄位和函式。在實現繼承中,派生型別採用基型別的每個函式的實現**,除非在派生型別的定義中指定重寫某個函式的實現**。在需要給現有的型別新增功能,或許多相關的型別共享一組重要的公共功能時,這種型別的繼承非常有用。
介面繼承:表示乙個型別只繼承了函式的簽名,沒有繼承任何實現**。在需要指定該型別具有某些可用的特性時,最好使用這種型別的繼承。
結構總是派生自system.valuetype, 它們還可以派生自任意多個介面
類總是派生自使用者選擇的另乙個類,它們還可以派生自任意多個介面
把乙個基類函式宣告為virtual,就可以在任何派生類中重寫該函式,也可以把屬性宣告為virtual,對於虛屬性或重寫屬性,語法與非虛屬性相同,但要在定義中新增關鍵字virtual:
1view codeclass
mybaseclass27
}8
在派生類的函式重寫另乙個函式時,要使用override關鍵字顯示宣告:
1view codeclass
myderivedclass: mybaseclass
27 }
成員欄位和靜態函式都不能宣告為virtual
如果簽名相同的方法在基類和派生類中都進行了宣告,但該方法沒有分別宣告為virtual 和override,派生類方法會隱藏基類方法
可以使用base.()語法呼叫基類中的任何方法,不必從同乙個方法的過載中呼叫它
抽象類不能例項化,抽象函式不能直接實現,必須在非抽象的派生類中重寫
如果類包含抽象函式,則該類也是抽象的,也必須宣告為抽象的:
1view codeabstract
class
building
2
要在方法或屬性上使用sealed關鍵字,必須先從基類上把它宣告為要重寫的方法或屬性。如果基類上不希望有重寫的方法或屬性,就不要把它宣告為virtual
建構函式的呼叫順序是先呼叫system.object,再按照層次結構由上向下進行,直到到達編譯器要例項化的類為止。每個建構函式都初始化它自己的類中的字段。
base和this關鍵字是呼叫另乙個建構函式時允許使用的唯一關鍵字,其他關鍵字都會產生編譯錯誤。
介面僅表示其成員的存在性,類負責確定這些成員是虛擬還是抽象的。
介面引用的強大之處在於,它可以引用任何實現該介面的類。
linux高階程式設計二基礎知識
shell 一 shell命令 1.shell是一種命令直譯器 2.shell的種類 1.bash 2.sh 3.ksh 4.csh 5.3.檢視當前的shell型別 echo shell 4.檢視系統能支援的shell vi etc shells 5.command options arg1 ar...
HTML基礎知識筆記摘要
html 網際網路三大基石 1.html 顯示資料 2.http 傳輸資料 http傳輸協議 3.url 定位資料 協議 ip位址或主機名 埠 網路中的內容.html hyper text makeup language 超文字標記語言 什麼是文字 記錄文字本身 又記錄樣式的文字 叫文字 什麼是純文...
C 入門高階之一 基礎知識介紹
1.c 是1980年由貝爾實驗室的bjarne stroustrup博士創立的語言 2.c 語言最大的兩個特點 全面相容c語言,面對物件的特性 3.支援所有的c語言資料型別,但是c 的編譯器具有更加嚴格的型別檢查 4.結構體的定義方法示例 struct test 5.列舉定義方法 enum test...