freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c測(cè)試試題-在線瀏覽

2024-10-13 16:01本頁面
  

【正文】 能同時(shí)從多個(gè)基類繼承,但可以通過繼承多個(gè)接口來達(dá)到相同目的。例:class MyFancyGrid: Control, ISerializable, IDataBound {...} 密封類是不能繼承的類,抽象類不能被定義為密封類,且密封類的私有成員不能用protected修飾,只能用private。它們的區(qū)別是:ref參數(shù)必須初始化,而out參數(shù)不需要初始化。對(duì)out參數(shù)即使在傳遞前對(duì)其進(jìn)行了初始化,其值也不會(huì)傳遞到方法處理函數(shù)內(nèi)部。所以在方法內(nèi)部必須對(duì)out參數(shù)進(jìn)行初始化。C不支持方法的默認(rèn)值,只能通過方法重載來實(shí)現(xiàn)。例: class A {public void Method(params int[] i){...} } 方法的覆蓋:指派生類覆蓋基類的同名方法,有二種方法1)第一種是在派生類要覆蓋的方法前面加new修飾,而基類不需要作任何改動(dòng)。例: class A {public void Method()//無需任何修飾{...} } class B: A//從基類繼承{new public void Method()//覆蓋基類的同名方法{...} } class TestClass {A Instance = new B()。//這時(shí)將調(diào)用類A的Method方法,而不是類B的Method方法 } 2)第二種是在派生類要覆蓋的方法前面加override修飾,而基類的同名方法前面加virtual修飾。//定義一個(gè)實(shí)例,類型為基類,從派生類創(chuàng)建//派生類總是能夠向上轉(zhuǎn)換為其基類()。即調(diào)用的方法在編譯時(shí)就決定了:()而Instance的類是A,就會(huì)調(diào)用類A的Method()方法。使用override時(shí)強(qiáng)制編譯器在運(yùn)行時(shí)根據(jù)類的真正類型正確調(diào)用相應(yīng)的方法,而不是在編譯時(shí)。類的靜態(tài)方法可能通過 這種格式來調(diào)用,不能使用 這種方法調(diào)用。類的靜態(tài)方法可以訪問類的任何靜態(tài)成員,但不能訪問類的實(shí)例成員。類的public變量稱為類的公共字段。//protected字段,注意大小寫public string ZipCode{get//getter方法{return zipCode。//被傳遞的值自動(dòng)被在這個(gè)value變量中}}。屬性也可以用限定符virtual,override和abstract修飾,功能同其他類的方法。即在需要類成員時(shí)才對(duì)它們進(jìn)行初始化。C。聲明:int[] intArray。//三維數(shù)組 初始化:intArray = new int[3] {1,2,3}。//聲明時(shí)可以初始化 遍歷:1)一維數(shù)組for(int i = 0。i++)。for(int i = 0。i++)。i (0)。j (1)。k (2)。鋸齒數(shù)組(jagged Array)是元素為數(shù)組的數(shù)組,例:int[][] jaggedArray = new int[2][]。//每個(gè)元素必須初始化 jaggedArray[1] = new int[3]。i 。j jaggedArray[i].Length。由于類本身作數(shù)組使用,所以用this作索引器的名稱,索引器有索引參數(shù)值。using 。public object this[int idx] //this作索引器名稱,idx是索引參數(shù){get{if(idx 1 amp。 idx ){return data[idx]。}}set{if(idx 1 amp。 idx ){data[idx] = value。}else{//拋出一個(gè)異常}}} } 接口是二段不同代碼之間約定,通過約定實(shí)現(xiàn)彼此之間的相互訪問。當(dāng)在接口中指定了實(shí)現(xiàn)這個(gè)接口的類時(shí),我們就稱這個(gè)類“實(shí)現(xiàn)了該接口”或“從接口繼承”。接口中可以包含方法、屬性、索引器和事件——其中任何一種都不是在接口自身中來實(shí)現(xiàn)的。}//event declarationevent testEvevnt Changed。//indexer declarationstring this[int index] { get。} } 說明:定義接口時(shí),在方法、屬性、事件和索引器所有這些接口成員都不能用public之類的訪問限定符,因?yàn)樗薪涌诔蓡T都是public類型的。例: using System。public string Data{get {return 。}} } interface IValidate {bool Validate()。}public bool Validate()//實(shí)現(xiàn)接口{if(data == “my control data”)return true。} } class InterfaceApp {MyControl myControl = new MyControl()。//可以將一個(gè)實(shí)現(xiàn)某接口的類,轉(zhuǎn)換成該接口bool success = ()。這種方法來調(diào)用Validate方法,因?yàn)閂alidate在類MyControl中是被定義成public的,如果去除public,Validate方法被隱藏,就不能用這種方法調(diào)用了,這樣隱藏接口方法稱為名字隱藏(name hiding)。if(null == val){...//沒有實(shí)現(xiàn)IValidate接口 } else {...//實(shí)現(xiàn)了IValidate接口}如果一個(gè)類從多個(gè)接口繼承,而這些接口中如果定義的同名的方法,則實(shí)現(xiàn)接口的方法時(shí),必須加接口名來區(qū)別,寫成 。例: interface ISaveData: ISerializable, IDataStore { //不需要定義任何方法或成員,只是用作合并 } class Test: ISaveData //只要繼承ISaveData就可以了 {...} C 操作符優(yōu)先級(jí)(從高到低)初級(jí)操作符() f(x)a[x] x++ xnew typeof sizeof checked unchecked 一元操作符 +位移操作符 關(guān)系操作符 = is 等于操作符 == 邏輯與amp。amp。= ^= |= 所有的二元操作符除賦值符外都是左聯(lián)合的,即從左到右計(jì)算。例: Type t1 = typeof(Apple)。//apple是Apple類的一個(gè)實(shí)例 Type t2 = ()。string className = ()。//得到所有方法 foreach(MethodInfo method in methods){ //()得到方法名 } MemberInfo[] members = ()。例:static unsafe public void ShowSizes(){int i, j。j = sizeof(i)。for語句的語法為:for(initialization。step)embeddedstatement 在initialization和step部份還可以使用逗號(hào)操作符,例: for(int i = 39。, j = 1。代表主要有二個(gè)用途:回調(diào)(Callback)和事件處理(event)回調(diào)通常用于異步處理和自定義處理。//聲明回調(diào)函數(shù)public void delegate EnumConnectionCallback(DBConnection connection)。//執(zhí)行回調(diào)函數(shù)}} } //調(diào)用class DelegateApp {public static void ActiveConncetionCallback(DBConnection connection)//處理函數(shù){...}public void main(){//創(chuàng)建指向具體處理函數(shù)的代表實(shí)例(新建一個(gè)代表,讓它指向具體的處理函數(shù)) myCallback = new (ActiveConncetionCallback)。} } //使用靜態(tài)代表,上面的調(diào)用改為 class DelegateApp {//創(chuàng)建一個(gè)指向處理函數(shù)的靜態(tài)代表public static myCallback= new (ActiveConncetionCallback)。} } //在需要時(shí)才創(chuàng)建代表,上面的調(diào)用改為class DelegateApp {//將創(chuàng)建代表放在屬性的getter方法中public static myCallback{get{retun new (ActiveConncetionCallback)。//創(chuàng)建應(yīng)用程序(myCallback)。 EmailPurchasingMgrCallback= new (EmailPurchasingMgr)。//調(diào)用代表InventoryManager mgr = new InventoryManager()。//InventoryManager類的ProcessInventory方法的原型為://public void ProcessInventory(OutOfStockExceptionMethod exception)。exceptionMethods[0] = new (LogEvent)。exceptionMethods[2] = new (EmailStoreMgr)。//再定義一個(gè)代表(用于組合成單代表) positeDelegate。}else{positeDelegate = exceptionMethods[0] + exceptionMethods[2]。(positeDelegate)。在這種模式中,一個(gè)類公布能夠出現(xiàn)的所有事件,然后任何的類都可以預(yù)訂這些事件。當(dāng)代表作為事件的處理結(jié)果時(shí)(或者說定義具有代表的事件),定義的代表必須指向二個(gè)參數(shù)的方法:一個(gè)參數(shù)是引發(fā)事件的對(duì)象(發(fā)布者),另一個(gè)是事件信息對(duì)象(這個(gè)對(duì)象必須從EventArgs類中派生)。class InventoryChangeEventArgs: EventArgs //事件信息對(duì)象,從EventArgs類派生 {...//假設(shè)定義二個(gè)public屬性string Sku和int Change } class InventoryManager//事件的發(fā)布者 {//聲明代表public delegate void InventoryChangeEventHander(object source, InventoryChangeEventArgs e)。public void UpdateInventory(string sku, int change){if(change == 0)return。//觸發(fā)事件if(onInventoryChangeHandler!= null)//如果有預(yù)訂者就觸發(fā)onInventoryChangeHandler(this, e)。//預(yù)訂事件,用 += 調(diào)用多個(gè)處理函數(shù) += new (onInventoryChange)。} } class EventsApp//主程序 {public static void Main(){InventoryManager inventoryManager = new InventoryManager()。(“111 006 116”,2)。} } Microsoft Windows NT和IBM OS/2等操作系統(tǒng)都支持占先型多任務(wù)。處理器接著在不同的線程之間進(jìn)行切換,執(zhí)行相應(yīng)的處理。操作系統(tǒng)調(diào)度的多線程只是根據(jù)分配給每個(gè)線程時(shí)間片進(jìn)行切換執(zhí)行,感覺上就像同時(shí)執(zhí)行。當(dāng)這個(gè)硬件計(jì)時(shí)器給出中斷信號(hào)時(shí),處理器把當(dāng)前運(yùn)行的線程所用的所有寄存器(registers)數(shù)據(jù)存儲(chǔ)到堆棧中。當(dāng)處理器要切換回原來執(zhí)行的線程時(shí),它反向執(zhí)行這個(gè)過程,利用與該線程相關(guān)的上下文結(jié)構(gòu),在寄存器里重新恢復(fù)與這一線程相關(guān)的信息。多線程允許應(yīng)用程序把任務(wù)分割為多個(gè)線程,它們彼此之間可以獨(dú)立地工作,最大限度地利用了處理器時(shí)間。using 。Thread t = new Thread(worker)。//執(zhí)行線程} } 可以通過兩種方式來得到一個(gè)Thread對(duì)象:一種是通過創(chuàng)建一個(gè)新線程來得到,如上例;。(0)那么當(dāng)前線程將一直處于等待中,等待才會(huì)結(jié)束。(0)則會(huì)阻塞線程。運(yùn)行環(huán)境將會(huì)等待,直到線程到達(dá)文檔中所描述的“安全點(diǎn)”。這是一個(gè)同步調(diào)用,同步調(diào)用意味著直到線程完全停止,調(diào)用才會(huì)返回??梢栽O(shè)為Highest, AboveNormal,Normal, BelowNormal, Lowest。通過同步,可以指定代碼的臨界區(qū)(critical section),一次只有一個(gè)線程可以進(jìn)入臨界區(qū)。using 。//獲取對(duì)象的Monitor鎖...//執(zhí)行需要同步的處理(this)。這個(gè)方法會(huì)試圖獲取對(duì)象上的Monitor鎖,如果另一個(gè)線程已經(jīng)擁有了這個(gè)鎖,這個(gè)方法將會(huì)阻塞(block),直到這個(gè)鎖被釋放。上面同步寫成:public void SaveData(string text)//線程執(zhí)行函數(shù)或線程執(zhí)行函數(shù)調(diào)用的對(duì)象的方法 {...//執(zhí)行其他一些不需要同步的處理lock(this)//獲取對(duì)象的Monitor鎖,代碼塊執(zhí)行完成后釋放Monitor鎖{...//執(zhí)行需要同步的處理}...//執(zhí)行其他一些不需要同步的處理 } (互斥類)進(jìn)行線程同步。但Mutex要慢得多,但它增加了靈活性。using 。//創(chuàng)建一個(gè)互斥,但不立即獲得它//注意:創(chuàng)建互斥在需要同步的方法之外,實(shí)際上它只要?jiǎng)?chuàng)建一個(gè)實(shí)例public void SaveData(string text)//需要同步的方法{()。//釋放互斥} } Mutex類重載了三個(gè)構(gòu)造函數(shù):Mutex()//創(chuàng)建并使創(chuàng)建類立即獲得互斥Mutex(bool initia
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1