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

正文內(nèi)容

aspnet筆試題目帶答案-資料下載頁(yè)

2024-08-21 16:31本頁(yè)面

【導(dǎo)讀】靜態(tài)變量使用static修飾符進(jìn)行聲明,在類被實(shí)例化時(shí)創(chuàng)建,通過(guò)類進(jìn)行訪問(wèn).但與常量不同的是這種變量。注意,和DllImport一起使用時(shí)要加上static

  

【正文】 ss1 tmpObj3 = new Test1Class1()。 } } namespace Test2 { using Test1Class2 = 。 class Program { static void Main(string[] args) { //Lib01Class1 和 Lib02Class2 在這可以正常使用 Lib01Class1 tmpObj1 = new Lib01Class1()。 Lib02Class2 tmpObj2 = new Lib02Class2()。 //注意這里, TestClass1 在這不可以正常使用。 //因?yàn)?,?Test2命名空間內(nèi)不能使用 Test1命名空間定義的別名 //Test1Class1 tmpObj3 = new Test1Class1()。 //TestClass2 在這可以正常使用 Test1Class2 tmpObj3 = new Test1Class2()。 (tmpObj1)。 (tmpObj2)。 (tmpObj3)。 ()。 } } } } 結(jié)果: 39。s Class1 39。s Class1 39。s Class1 源? 答: .NET 平臺(tái)在內(nèi)存管理方面提供了 GC( Garbage Collection),負(fù)責(zé)自動(dòng)釋放托管資源和內(nèi)存回收的工作。但在以下兩種情況需要我們手工進(jìn)行資源釋放:一、由于它無(wú)法對(duì)非托管資源進(jìn)行釋放,所以 我們必須自己提供方法來(lái)釋放對(duì)象內(nèi)分配的非托管資源,比如你在對(duì)象的實(shí)現(xiàn)代碼中使用了一個(gè) COM 對(duì)象;二、你的類在運(yùn)行是會(huì)產(chǎn)生大量實(shí)例(象 GIS 中的 Geometry),必須自己手工釋放這些資源以提高程序的運(yùn)行效率 最理想的辦法是通過(guò)實(shí)現(xiàn)一個(gè)接口顯式的提供給客戶調(diào)用端手工釋放對(duì)象,System 命名空 間內(nèi)有一個(gè) IDisposable 接口,拿來(lái)做這事非常合適,省得我們自己再聲明一個(gè)接口了 示例: using System。 using 。 using 。 namespace Example20 { class Program { class Class1 : IDisposable { //析構(gòu)函數(shù),編譯后變成 protected void Finalize(), GC 會(huì)在回收對(duì)象前會(huì)調(diào)用調(diào)用該方法 ~Class1() { Dispose(false)。 } //通過(guò)實(shí)現(xiàn)該接口,客戶可以顯式地釋放對(duì)象,而不需要等待 GC來(lái)釋放資源,據(jù)說(shuō)那樣會(huì)降低效率 void () { Dispose(true)。 } //將釋放非托管資源設(shè)計(jì)成一個(gè)虛函數(shù),提供在繼承類中釋放基類的資源的能力 protected virtual void ReleaseUnmanageResources() { //Do something... } //私有函數(shù)用以釋放非托管資源 private void Dispose(bool disposing) { ReleaseUnmanageResources()。 //為 true 時(shí)表示是客戶顯式調(diào)用了釋放函數(shù),需通知 GC不要再調(diào)用對(duì)象的 Finalize 方法 //為 false 時(shí)肯定是 GC調(diào)用了對(duì)象的 Finalize 方法,所以沒(méi)有必要再告訴 GC你不要調(diào)用我的 Finalize 方法啦 if (disposing) { (this)。 } } } static void Main(string[] args) { //tmpObj1 沒(méi)有手工釋放資源,就等著 GC來(lái)慢慢的釋放它吧 Class1 tmpObj1 = new Class1()。 //tmpObj2 調(diào)用了 Dispose 方法,傳說(shuō)比等著 GC 來(lái)釋放它效率要調(diào)一些 //個(gè)人認(rèn)為是因?yàn)橐饌€(gè)對(duì)象的查看其元數(shù)據(jù),以確認(rèn)是否實(shí)現(xiàn)了Dispose 方法吧 //當(dāng)然最重要的是我們可以自己確定釋放的時(shí)間以節(jié)省內(nèi)存,優(yōu)化程序運(yùn)行效率 Class1 tmpObj2 = new Class1()。 ((IDisposable)tmpObj2).Dispose()。 } } } ? 答: 在受控代碼 與非受控代碼進(jìn)行交互時(shí)會(huì)產(chǎn)生一個(gè)事務(wù)( transition) ,這通常發(fā)生在使用平臺(tái)調(diào)用服務(wù)( Platform Invocation Services),即 P/Invoke 如調(diào)用系統(tǒng)的 API 或與 COM 對(duì)象打交道,通過(guò) 命名空間 雖然使用 Interop 非常方便,但據(jù)估計(jì)每次調(diào)用事務(wù)都要執(zhí)行 10 到 40 條指令,算起來(lái)開(kāi)銷也不少,所以我們要盡量少調(diào)用事務(wù) .如果非用不可,建議本著一次調(diào)用執(zhí)行多個(gè)動(dòng)作,而不是多次調(diào)用每次只執(zhí)行少量動(dòng)作的 原則 和 String 的區(qū)別? 答: String 在進(jìn)行運(yùn)算時(shí)(如賦值、拼接等)會(huì)產(chǎn)生一個(gè)新的實(shí)例,而 StringBuilder 則不會(huì)。所以在大量字符串拼接或頻繁對(duì)某一字符串進(jìn)行操作時(shí)最好使用 StringBuilder,不要使用 String 另外,對(duì)于 String 我們不得不多說(shuō)幾句: ,在堆上分配內(nèi)存 對(duì)象一旦生成不可改變( Immutable) ( == 和 !=)是為了比較 String 對(duì)象(而不是引用)的值 示例: using System。 using 。 using 。 namespace Example22 { class Program { static void Main(string[] args) { const int cycle = 10000。 long vTickCount = 。 String str = null。 for (int i = 0。 i cycle。 i++) str += ()。 (String: {0} MSEL, vTickCount)。 vTickCount = 。 //看到這個(gè)變量名我就生氣,奇怪為什么大家都使它呢? :) StringBuilder sb = new StringBuilder()。 for (int i = 0。 i cycle。 i++) (i)。 (StringBuilder: {0} MSEL, vTickCount)。 string tmpStr1 = A。 string tmpStr2 = tmpStr1。 (tmpStr1)。 (tmpStr2)。 //注意后面的輸出結(jié)果, tmpStr1 的值改變并未影響到 tmpStr2 的值 tmpStr1 = B。 (tmpStr1)。 (tmpStr2)。 ()。 } } } 結(jié)果: String: 375 MSEL StringBuilder: 16 MSEL A A B A 和 implicit 的含義? 答: explicit 和 implicit 屬于轉(zhuǎn)換運(yùn)算符,如用這兩者可以讓我們自定義的類型支持相互交換 explicti 表示顯式轉(zhuǎn)換,如從 A B 必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換( B = (B)A) implicit 表示隱式轉(zhuǎn)換,如從 B A 只需直接賦值( A = B) 隱式轉(zhuǎn)換可以讓我們的代碼看上去更漂亮、更簡(jiǎn)潔易懂,所以最好多使用 implicit 運(yùn)算符。不過(guò)!如果對(duì)象本身在轉(zhuǎn)換時(shí)會(huì)損失一些信息(如精度),那么我們只能使用 explicit 運(yùn)算符,以便在編譯期就能警告客戶調(diào)用端 示例: using System。 using 。 using 。 namespace Example23 { class Program { //本例靈感來(lái)源于大話西游經(jīng)典臺(tái)詞 “ 神仙?妖怪? ” 主要是我實(shí)在想不出什么好例子了 class Immortal { public string name。 public Immortal(string Name) { name = Name。 } public static implicit operator Monster(Immortal value) { return new Monster( + :神仙變妖怪?偷偷下凡即可。 )。 } } class Monster { public string name。 public Monster(string Name) { name = Name。 } public static explicit operator Immortal(Monster value) { return new Immortal( + :妖怪想當(dāng)神仙?再去修煉五百年! )。 } } static void Main(string[] args) { Immortal tmpImmortal = new Immortal(紫霞仙子 )。 //隱式轉(zhuǎn)換 Monster tmpObj1 = tmpImmortal。 ()。 Monster tmpMonster = new Monster(孫悟空 )。 //顯式轉(zhuǎn)換 Immortal tmpObj2 = (Immortal)tmpMonster。 ()。 ()。 } } } 結(jié)果: 紫霞仙子:神仙變妖怪?偷偷下凡即可。 孫悟空:妖怪想當(dāng)神仙?再去修煉五百年! 有什么用? 答: params
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1