欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
C#學(xué)習筆記
1, 結構(struct) 與 類(lèi)(class)
[attributes] [modifiers] struct identifier [:interfaces] body [;]
結構與類(lèi)很相似,都表示可以包含數據成員和函數成員的數據結構。與類(lèi)不同的是,結構是值類(lèi)型并且不需要堆分配。結構類(lèi)型的變量直接包含結構的數據,而類(lèi)類(lèi)型的變量包含對數據的引用(該變量稱(chēng)為對象)。 struct 類(lèi)型適合表示如點(diǎn)、矩形和顏色這樣的輕量對象。盡管可能將一個(gè)點(diǎn)表示為類(lèi),但結構在某些方案中更有效。在一些情況下,結構的成本較低。例如,如果聲明一個(gè)含有 1000 個(gè)點(diǎn)對象的數組,則將為引用每個(gè)對象分配附加的內存。結構可以聲明構造函數,但它們必須帶參數。聲明結構的默認(無(wú)參數)構造函數是錯誤的??偸翘峁┠J構造函數以將結構成員初始化為它們的默認值。在結構中初始化實(shí)例字段是錯誤的。在類(lèi)中,必須初始化實(shí)例對象. 使用 new 運算符創(chuàng )建結構對象時(shí),將創(chuàng )建該結構對象,并且調用適當的構造函數。與類(lèi)不同的是,結構的實(shí)例化可以不使用 new 運算符。如果不使用 new,那么在初始化所有字段之前,字段將保持未賦值狀態(tài)且對象不可用。對于結構,不像類(lèi)那樣存在繼承。一個(gè)結構不能從另一個(gè)結構或類(lèi)繼承,而且不能作為一個(gè)類(lèi)的基。但是,結構從基類(lèi) Object 繼承。結構可實(shí)現接口,其方式同類(lèi)完全一樣。
[c++] 與 C++ 不同,無(wú)法使用 struct 關(guān)鍵字聲明類(lèi)。在 C# 中,類(lèi)與結構在語(yǔ)義上是不同的。結構是值類(lèi)型,而類(lèi)是引用類(lèi)型。
2, 裝箱和拆箱(取消裝箱)
裝箱是值類(lèi)型到 object 類(lèi)型或到該值類(lèi)型所實(shí)現的任何接口類(lèi)型的隱式轉換。將一個(gè)值的值裝箱會(huì )分配一個(gè)對象實(shí)例并將該值復制到新的對象中。關(guān)鍵字 object. 取消裝箱是從 object 類(lèi)型到值類(lèi)型或從接口類(lèi)型到實(shí)現該接口的值類(lèi)型的顯式轉換。取消裝箱操作包括:檢查對象實(shí)例,確保它是給定值類(lèi)型的一個(gè)裝箱值。將該值從實(shí)例復制到值類(lèi)型變量中。
例:
int i = 123; // A value type
object box = i; // Boxing
int j = (int)box; // Unboxing
裝箱轉換
取消裝箱
3 , 隱式和顯式
下列轉換屬于隱式轉換:例:object o=i;
標識轉換。
隱式數值轉換。
隱式枚舉轉換。
隱式引用轉換。
裝箱轉換。
隱式常數表達式轉換。
用戶(hù)定義的隱式轉換。
下列轉換屬于顯式轉換: object 0=(object)i;
所有隱式轉換。
顯式數值轉換。
顯式枚舉轉換。
顯式引用轉換。
顯式接口轉換。
取消裝箱轉換。
用戶(hù)定義的顯式轉換
4, delegate(委托)
delegate void D(int x);
class C{
public static void M1(int i) { /* ... */ }
public static void M2(int i) { /* ... */ }}
class{…….D cd1 = new D(C.M1);………….}
委托是一個(gè)數據結構,該數據結構引用一個(gè)靜態(tài)方法,或引用一個(gè)對象實(shí)例和該對象的實(shí)例方法。在 C 或 C++ 中與委托最接近的是函數指針,但函數指針只能引用靜態(tài)函數,而委托可以同時(shí)引用靜態(tài)方法和實(shí)例方法。在后一種情況中,委托不僅存儲對方法入口點(diǎn)的引用,還存儲對調用其方法的對象的引用。與 C++ 函數指針不同,委托是完全面對對象的;與指向成員函數的 C++ 指針不同,委托同時(shí)封裝對象實(shí)例和方法。委托聲明定義從類(lèi) System.Delegate 派生的類(lèi)。委托實(shí)例封裝一個(gè)或多個(gè)方法,每個(gè)方法都被稱(chēng)為可調用實(shí)體。對于實(shí)例方法,可調用實(shí)體由一個(gè)實(shí)例和該實(shí)例上的方法組成。對于靜態(tài)方法,可調用實(shí)體僅由一個(gè)方法組成。給定委托實(shí)例和適當的參數集,便可以用該參數集調用此委托實(shí)例的所有方法。委托實(shí)例的一個(gè)有趣和有用的屬性是它不了解或不關(guān)心它所封裝的方法的類(lèi);真正重要的只是方法要與委托的類(lèi)型兼容, 這使委托非常適合“匿名”調用??蛇x的形參表指定委托的參數,而返回類(lèi)型則指示委托的返回類(lèi)型。如果下面兩個(gè)條件都為真,則方法和委托類(lèi)型是兼容的:(兼容的概念就是可以用此聲明的委托對方法進(jìn)行委托).
1它們具有相同的參數數目,并且類(lèi)型相同,順序相同,參數修飾符也相同。
2它們的返回類(lèi)型相同。
C# 中的委托類(lèi)型是名稱(chēng)等效的,而不是結構等效的。(但是請注意:兩個(gè)不同但結構上等效的委托類(lèi)型的實(shí)例可能會(huì )比較為相等),準確地說(shuō),兩個(gè)具有相同參數列表、簽名和返回類(lèi)型的不同的委托類(lèi)型被認為是不同的委托類(lèi)型。委托實(shí)例所封裝的方法集合稱(chēng)為調用列表。
5, interface(接口)
[attributes] [modifiers] interface identifier [:base-list] {interface-body}[;]
一個(gè)接口定義一個(gè)協(xié)定。實(shí)現接口的類(lèi)或結構必須遵守其協(xié)定。接口可以從多個(gè)基接口繼承,而類(lèi)或結構可以實(shí)現多個(gè)接口。接口可以包含方法、屬性、事件和索引器。接口本身不提供它所定義的成員的實(shí)現。接口只指定實(shí)現該接口的類(lèi)或接口必須提供的成員。接口可以是命名空間或類(lèi)的成員,并且可以包含下列成員的簽名:方法屬性 索引器.
一個(gè)接口可從一個(gè)或多個(gè)基接口繼承。接口可由類(lèi)實(shí)現。實(shí)現的接口的標識符出現在類(lèi)的基列表中。被繼承的接口稱(chēng)為該接口的顯式基接口。當接口具有一個(gè)或多個(gè)顯式基接口時(shí),在該接口聲明中,接口標識符后跟一個(gè)冒號以及由逗號分隔的基接口標識符列表。接口的基接口是顯式基接口及其基接口。換言之,基接口集是顯式基接口、它們的顯式基接口(依此類(lèi)推)的完全可傳遞的閉包。接口繼承其基接口的所有成員。接口成員是通過(guò) I.M 和 I[A] 形式的成員訪(fǎng)問(wèn)和索引訪(fǎng)問(wèn)表達式訪(fǎng)問(wèn)的,其中 I 是接口類(lèi)型的實(shí)例,M 是該接口類(lèi)型的方法、屬性或事件,A 是索引器參數列表。接口可以由類(lèi)和結構實(shí)現。為了指示類(lèi)或結構實(shí)現接口,在該類(lèi)或結構的基類(lèi)列表中包含了接口標識符。在實(shí)現類(lèi)或結構中定位接口成員的實(shí)現的過(guò)程稱(chēng)為接口映射。
6,object
object 類(lèi)類(lèi)型是所有其他類(lèi)型的最終基類(lèi)。C# 中的每種類(lèi)型都是直接或間接從 object 類(lèi)類(lèi)型派生的??梢园讶魏晤?lèi)型的數值給object類(lèi)型.
7,string類(lèi)型
string 類(lèi)的實(shí)例表示 Unicode 字符串。盡管 string 是引用類(lèi)型,但相等運算符(== 和 !=)被定義為比較 string 對象(而不是引用)的“值”(7.9.7 字符串相等運算符)。這使得對字符串相等性的測試更為直觀(guān)。字符串為 string 類(lèi)型并可寫(xiě)成兩種形式,即用引號引起來(lái)和用 @ 引起來(lái)。用引號引起來(lái)的字符串括在雙引號 (") 內, 并且可以包含包括換碼序列在內的任何字符用 @ 引起來(lái)的字符串以 @ 開(kāi)頭,并用雙引號引起來(lái)。用 @ 引起來(lái)的字符串以 @ 開(kāi)頭,并用雙引號引起來(lái)。若要在一個(gè)用 @ 引起來(lái)的字符串中包括一個(gè)雙引號,請使用兩對雙引號:@ 符號的另一種用法是使用碰巧成為 C# 關(guān)鍵字的被引用的 (/reference) 標識符。
8, 修飾符
修飾符作用
訪(fǎng)問(wèn)修飾符
public
private
internal
protected
指定聲明的類(lèi)型和類(lèi)型成員的可訪(fǎng)問(wèn)性。
訪(fǎng)問(wèn)不受限制
只有包含該類(lèi)的成員的類(lèi)可以訪(fǎng)問(wèn)
只有當前工程可以訪(fǎng)問(wèn)
只有包含該成員的類(lèi)和繼承的類(lèi)可以訪(fǎng)問(wèn)
abstract指示某個(gè)類(lèi)只能是其他類(lèi)的基類(lèi)。
const指定無(wú)法修改字段或局部變量的值。
event聲明一個(gè)事件。
extern指示外部實(shí)現此方法。
override提供從基類(lèi)繼承的虛擬成員的新實(shí)現。
readonly聲明一個(gè)字段,該字段只能賦值為該聲明的一部分或者在同一類(lèi)的構造函數中。
sealed指定類(lèi)不能被繼承。
static聲明屬于類(lèi)型本身而不是屬于特定對象的成員。
unsafe聲明不安全的上下文。
virtual在派生類(lèi)中聲明其實(shí)現可由重寫(xiě)成員更改的方法或訪(fǎng)問(wèn)器。
volatile指示字段可由操作系統、硬件或并發(fā)執行的線(xiàn)程等在程序中進(jìn)行修改。
9,語(yǔ)句
語(yǔ)句是程序指令。除非特別說(shuō)明,語(yǔ)句都按順序執行。C# 具有下列類(lèi)別的語(yǔ)句。
類(lèi)別C# 關(guān)鍵字
選擇語(yǔ)句if, else, switch, case
迭代語(yǔ)句do, for, foreach, in, while
跳轉語(yǔ)句break, continue, default, goto, return
異常處理語(yǔ)句throw, try-catch, try-finally
Checked 和 Uncheckedchecked, unchecked
fixed 語(yǔ)句Fixed
lock 語(yǔ)句Lock
(1) foreach 語(yǔ)句為數組或對象集合中的每個(gè)元素重復一個(gè)嵌入語(yǔ)句組。foreach 語(yǔ)句用于循環(huán)訪(fǎng)問(wèn)集合以獲取所需信息,但不應用于更改集合內容以避免產(chǎn)生不可預知的副作用。此語(yǔ)句的形式如下:
foreach (type identifier in expression) statement
若要循環(huán)訪(fǎng)問(wèn)集合,集合必須滿(mǎn)足特定的要求。集合類(lèi)型:
必須是 interface、class 或 struct。
必須包括返回類(lèi)型的名為 GetEnumerator 的實(shí)例方法,例如 Enumerator(詳見(jiàn)下文)。
Enumerator 類(lèi)型(類(lèi)或結構)必須包含:
一個(gè)名為 Current 的屬性,它返回 ItemType 或者可以轉換為此類(lèi)型的類(lèi)型。屬性訪(fǎng)問(wèn)器返回集合的當前元素。
· 一個(gè)名為 MoveNext 的 bool 方法,它遞增項計數器并在集合中存在更多項時(shí)返回 true。
有三種使用集合的方法:
使用上述指導創(chuàng )建一個(gè)集合。此集合只能用于 C# 程序。
1. 使用上述指導創(chuàng )建一個(gè)一般集合,另外實(shí)現 IEnumerable 接口。此集合可用于其他語(yǔ)言(如 Visual Basic)。
2. 在集合類(lèi)中使用一個(gè)預定義的集合。
(2) throw 語(yǔ)句用于發(fā)出在程序執行期間出現反常情況(異常)的信號。throw 語(yǔ)句的形式為:
throw [expression];
expression :異常對象。當在 catch 子句中再次引發(fā)當前異常對象時(shí),它被省略。
(3)try –catch語(yǔ)句
try-catch 語(yǔ)句由一個(gè) try 塊和其后所跟的一個(gè)或多個(gè) catch 子句(為不同的異常指定處理程序)構成。try-catch 語(yǔ)句采用下列形式之一:
try try-block
catch (exception-declaration-1) catch-block-1
catch (exception-declaration-2) catch-block-2
...
try try-block catch catch-block
(4) fixed
防止變量被垃圾回收器重定位。
(5) lock
lock 關(guān)鍵字將某個(gè)語(yǔ)句塊標記為臨界區。
6. 方法參數
如果為沒(méi)有 ref 或 out 的方法聲明一個(gè)參數,則此參數可以具有關(guān)聯(lián)的值??梢栽诜椒ㄖ懈脑撝?,但當控制傳遞回調用過(guò)程時(shí),不會(huì )保留更改的值。通過(guò)使用方法參數關(guān)鍵字,可以更改這種行為。如果沒(méi)有ref,out則默認為值傳遞,雖然可以在方法中修改這個(gè)參數的值,但是修改后的值不會(huì )還會(huì )到調用該方法的程序中.
params :params 關(guān)鍵字可以指定在參數數目可變處采用參數的方法參數
ref :引用傳遞
out :
7, namespace(名字空間)
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
你必須知道的C#的25個(gè)基礎概念
Java
C#基礎知識(3)
《深入理解 C# (第2版)》 - 學(xué)習筆記
LINQ體驗(3)——C# 3.0新語(yǔ)言特性和改進(jìn)(下篇)
java基礎
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久