国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.Net框架程序設計(一)----進階

2024-07-10 12:59:07
字體:
來源:轉載
供稿:網友
q1:值類型和引用類型的差別






q2:值類型的裝箱和拆箱

answer:

裝箱是將一個值類型轉換為一個引用類型。例如:在arraylist中add一個結構體的實例。

步驟:

1 從托管堆上為引用類型分配內存。內存的大小為值類型本身的大小加上其他的空間包括一個方法表和一個syncblockindex

2 值類型的字段被復制到托管堆上新分配的對象的內存中

3 返回托管堆中新分配對象的地址作為該對象的引用。



拆箱是為了獲得托管堆上對象的元素到棧空間的值類型中。

1獲取在托管堆上的被裝相的值類型的地址

2從托管堆上復制到棧上的值類型中

用到directcast和ctype靜態方法




q3:directcast和ctype的區別

ctype在轉型比directcast強。比如:一個int32的值類型裝箱為object,拆箱的時候directcast只能從object轉型為int32(作為拆箱的步驟可能更加安全--沒有多的轉型),而ctype則可以從object轉型為int16(包括了拆箱和轉型2個動作)




q4:類型構造器和實例構造器的區別






q5:memberwiseclone淺拷貝過程

umemberwiseclone創建與當前實例相同類型的新實例,然后復制原始對象的非靜態字段。如果字段為值類型的則為則對該字段執行逐位復制。如果字段是引用類型,則復制該引用但不復制被引用的對象;這樣,原始對象中的引用和復本中的引用指向同一個對象。

如何實現深拷貝?

實現iclonable接口,override父類的clone()函數

public function clone() as object implements iclonable

一般的方法:new一個要clone的新對象,將原對象中成員的值賦給新對象的成員,返回該新對象的引用。

較好的辦法:將對象序列化到一個system.io.memorystream中,然后立即對該內存流執行反序列化,從而得到一個新的對象。




q6:module與class的區別

module實際上也是一種特殊的class。該類的保護級是friend,該類不包含任何實例構造器,可以防止創建它的實例,方法和變量都聲明為shared。

使用module是為了實現模塊外部代碼對模塊中的成員的訪問。2來是為了早期vb代碼移植的方便。




q7:vb.net中的參數傳遞

有兩種一種是按值傳遞byval,一種是按引用傳遞byref。按值傳遞時候會拷貝一份原參數,引用則相當于別名。




q8:structure和class的區別

1 結構是值類型,其實例是在棧上面分配的;而類的實例是在堆上分配的,其引用是在棧空間上。

2 結構不能被繼承,類可以被繼承。

3 結構的默認成員都為public,并且其成員沒有protected,不能給變量聲明指定初始值,不能定義默認拷貝構造函數和數組初始大小 ;類的變量和常量是private,其他成員是public

4 結構從不終止,不會調用finalize方法;

創建一個class的實例和創建一個structure實例的區別

結構是值類型,其實例是在棧上面分配的;而類的實例是在堆上分配的,其引用是在棧空間上。




q9:如何保證系統中只有一個程序的實例在運行

1 首先獲得當前程序在系統中的進程

2 用該進程的名稱為參數,從系統中取得與該進程名稱相等的所有存在的進程放在process數組里面。

3 循環該process數組,如果有process的執行文件名和當前產生process的文件名。如果有,則表明工程已經運行,退出即可,沒有的話則繼續執行。






q:重寫overrides與重載overload的區別

overloads是同一個類中對同名函數不同參數的重載

overrides是繼承類中對父類中標示為overridable的函數的重寫,實現該函數在繼承類中特有的功能

q:shadows的作用?

當繼承類中的方法被聲明為shadows的時候,會使父類中所有與該方法同名的函數被屏蔽掉,不繼承在子類中






q:抽象類(mustinherit-mustoverride)與接口(的區別

抽象類不能被實例化只能被他的繼承類實現,接口也不能被實例化,只能被implements。

抽象類除了方法會mustoverride修飾外,其他和一般的類沒有區別;接口的成員只能有嵌套類型、方法、屬性和事件。




q:equals






q:string和stringbuilder區別

這個區別有點類氏于java中的string和stringbuffer的區別。




q:模擬一個combobox接口?






q:標準事件處理程序

系統實例化一個有反映能力的學生,讓他去逛商場,這個時候他有可能碰到很多人,當他看到mm的時候,他會流鼻血。

module module1

class cstudent

public event seeingmm

sub shopping

raiseevent seeingmm()

end sub

end class



sub stu_seeingmm() handles stu.seeingmm ‘我們定義這個學生看到mm這個事件發生的

‘時候他就流鼻血

console.writeline(“流碧血”)

end sub



withevents stu as new cstudent ‘1 系統實例化一個有反映能力的學生



sub main()

stu.shopping() ‘2 讓他去逛商場,

end sub

end module




q:抽象類(mustinherit-mustoverride)與接口(的區別






q:抽象類(mustinherit-mustoverride)與接口(的區別



商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 塔河县| 衡南县| 正安县| 九江市| 涟源市| 那曲县| 遵义市| 镇远县| 军事| 江川县| 新龙县| 乐东| 长沙县| 揭阳市| 阿拉善左旗| 拉孜县| 水城县| 罗田县| 张家港市| 黑山县| 和田县| 北流市| 东乌珠穆沁旗| 开江县| 山西省| 商丘市| 肃宁县| 全南县| 丰都县| 香港| 海原县| 滦南县| 寻乌县| 龙陵县| 五峰| 牟定县| 延津县| 麟游县| 海丰县| 竹溪县| 嘉义县|