Structure是值類型,classe是引用類型 Structure用棧來分配; classe用堆來分配 structure的成員默認(rèn)情況下是公共的,而Class的成員變量和常量默認(rèn)情況下是私有的而其它成員默認(rèn)情況下是公共的.這與VB6是相兼容的。 structure必須至少有一個(gè)非共享的成員變量或事件成員,class可以完全是空的. Structure的成員不能聲明成Protected; class成員可以. 一個(gè)structure過程只能在它是一個(gè)Shared Sub時(shí)才能handle events而且只能通過AddHandler語句;而任何class過程都可以handle events,既可以用Handles關(guān)鍵字或 AddHandler語句。 Structure variable declarations cannot specify initializers, the New keyword, or initial sizes for arrays; class variable declarations can. Structure繼承自ValueType類,不能從其它任何類型繼承; classes可以從任何不是ValueType的類繼承 Structure不能繼承而Class可以 Structure從來不析構(gòu)terminated因此common language runtime (CLR)從來不調(diào)用它的Finalize方法,classe由垃圾回收器進(jìn)行析構(gòu), 當(dāng)沒有任何對(duì)該類的引用時(shí)調(diào)用它的Finalize方法 structure 不需要一個(gè)構(gòu)造函數(shù),而Class需要 Structure只能有帶參數(shù)的非共享的構(gòu)造函數(shù); classes 可以有帶或不帶參數(shù)的構(gòu)造函數(shù). 每個(gè)Structure都有一個(gè)默認(rèn)的不帶參數(shù)的構(gòu)造函數(shù)以對(duì)其成員進(jìn)行初始化,你可以重新定義該函數(shù)
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為舒蘭企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),舒蘭網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
析構(gòu)函數(shù)不需要你去直接調(diào)用,任何對(duì)象(類的實(shí)例)被刪除之后,系統(tǒng)都會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)。
一般的,如果你用new創(chuàng)建對(duì)象,那么在delete的時(shí)候,會(huì)調(diào)用對(duì)象的析構(gòu)函數(shù)。如果對(duì)象是全局變量或者局部自動(dòng)變量,則在這個(gè)變量的生存期結(jié)束的時(shí)候調(diào)用析構(gòu)函數(shù),比如局部自動(dòng)變量是在函數(shù)返回的時(shí)候被刪除,這個(gè)時(shí)候會(huì)調(diào)用析構(gòu)函數(shù)。
析構(gòu)就是對(duì)象離開生存空間時(shí)執(zhí)行的,用來清理分配的空間之類.
虛函數(shù)的作用:假如有類A.類A派生出類B.
那么如果寫A* p = new B;時(shí).就得到了一個(gè)指向類B的指針,這個(gè)指針的類型是A*
如果類A和類B中都有void Out()這么個(gè)函數(shù).p-Out()將調(diào)用A::Out()函數(shù)
而如果把類A中的改成虛函數(shù)virtual void Out().p-Out()就將調(diào)用B::Out()函數(shù).
就是這樣
下面抄幾段:
析構(gòu)函數(shù)是“反向”的構(gòu)造函數(shù)。它們?cè)趯?duì)象被撤消(回收)時(shí)調(diào)用。析構(gòu)函數(shù)的名 稱除了最前面的“~”符號(hào)外,與類的名稱相同。例如,類String的析構(gòu)函數(shù)是~string()。 析構(gòu)函數(shù)通常用于當(dāng)一個(gè)對(duì)象不再需要時(shí),完成“消除”功能。
在函數(shù)中建立對(duì)象之后,這個(gè)對(duì)象作為局部對(duì)象開始生存,直到函數(shù)運(yùn)行到遇見右括號(hào)“}”才結(jié)束生存,此時(shí)調(diào)用析構(gòu)函數(shù)。
對(duì)象的釋放發(fā)生在以下幾種情況,首發(fā)自學(xué)編程網(wǎng):
·使用運(yùn)算符new分配的對(duì)象被delete刪除。
·一個(gè)具有塊作用域的本地(自動(dòng))對(duì)象超出其作用域。
·臨時(shí)對(duì)象的生存期結(jié)束。
·程序結(jié)束運(yùn)行。
·使用完全限定名顯示調(diào)用對(duì)象的析構(gòu)函數(shù)。
有幾條規(guī)則約束著析構(gòu)函數(shù)的說明:
·不能接受參量。
· 不能說明有任何返回類型(包括void)。
·不能用return語句返回值。
· 不能說明為const、volatile或static,但析構(gòu)函數(shù)可以因說明為const、volatile或static的對(duì)象的析構(gòu)而被調(diào)用。
·可以說明為虛擬的。使用虛析構(gòu)函數(shù),可以撤消對(duì)象而不必知道該對(duì)象的類型。由于使用虛擬函數(shù)機(jī)制,程序?qū)⒄{(diào)用該對(duì)象的正確的析構(gòu)函數(shù)。
注意:在一個(gè)抽象類中,析構(gòu)函數(shù)可以說明為虛函數(shù)。我們會(huì)在后面詳細(xì)介紹虛函數(shù)的概念。
虛函數(shù)去這看吧
下面還有個(gè)虛析構(gòu)的
1、概念不同:
析構(gòu)函數(shù):對(duì)象所在的函數(shù)已調(diào)用完畢時(shí),系統(tǒng)自動(dòng)執(zhí)行析構(gòu)函數(shù)。
構(gòu)造函數(shù):是一種特殊的方法。特別的一個(gè)類可以有多個(gè)構(gòu)造函數(shù) ,可根據(jù)其參數(shù)個(gè)數(shù)的不同或參數(shù)類型的不同來區(qū)分它們 即構(gòu)造函數(shù)的重載。
2、作用不同:
析構(gòu)函數(shù):析構(gòu)函數(shù)被調(diào)用。
構(gòu)造函數(shù):為對(duì)象成員變量賦初始值
3、目的不同:
析構(gòu)函數(shù):”清理善后” 的工作
構(gòu)造函數(shù):主要用來在創(chuàng)建對(duì)象時(shí)初始化對(duì)象, 即為對(duì)象成員變量賦初始值,總與new運(yùn)算符一起使用在創(chuàng)建對(duì)象的語句中。
.NET是微軟下一代的操作平臺(tái),它允許人們?cè)谄渖蠘?gòu)建各種應(yīng)用方式,使人們盡可能通過簡(jiǎn)單的方式,多樣化地、最大限度地從網(wǎng)站獲取信息,解決網(wǎng)站之間的協(xié)同工作,并打破計(jì)算機(jī)、設(shè)備、網(wǎng)站、各大機(jī)構(gòu)和工業(yè)界間的障礙--即所謂的“數(shù)字孤島”,從而實(shí)現(xiàn)因特網(wǎng)的全部潛能,搭建起第三代互聯(lián)網(wǎng)平臺(tái)。
dispose是銷毀的意思,
如果不dispose,frm就會(huì)一直存在,這樣如果你以后再想用frm還可以用,但是會(huì)一直占用資源.
如果dispose了,frm就被銷毀了,內(nèi)存中就沒有frm了.一個(gè)對(duì)象
如果你確定以后再也不會(huì)用到,那就最好銷毀.否則當(dāng)對(duì)象多的時(shí)候(比如說100萬個(gè),夸張點(diǎn)),
如果前面的不銷毀,后面電腦肯定要崩潰了.