第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)問(wèn)C# Dispose();和Close();的不同?有什么不一樣的嗎?

請(qǐng)問(wèn)C# Dispose();和Close();的不同?有什么不一樣的嗎?

尚方寶劍之說(shuō) 2021-10-21 17:11:05
Dispose();和Close();有什么不同?比如StreamReader既有.Dispose();又有.Close();
查看完整描述

3 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

當(dāng)我們開(kāi)發(fā)C#代碼的時(shí)候,經(jīng)常碰到一個(gè)問(wèn)題,有些class提供Close(),有些class提供Dispose(),那么Dispose和Close到底有什么區(qū)別?

首先,Dispose和Close基本上應(yīng)該是一樣的。Close是為了那些不熟悉Dispose的開(kāi)發(fā)者設(shè)計(jì)的。因?yàn)榛旧纤械膁eveloper都知道Close是干嗎的(特別是對(duì)于那些有C++背景的developer)。

但是當(dāng)我們寫(xiě)code時(shí)候,如果要實(shí)現(xiàn)Close和Dispose的時(shí)候,要注意Close和Dispose的設(shè)計(jì)模式。.net的一些class只提供Close,而且派生自IDisposable,并且隱藏了Dispose方法。是不是覺(jué)得很不明白了?

對(duì)這些class來(lái)說(shuō),關(guān)鍵在于它們顯式的(explicitly)實(shí)現(xiàn)了IDisposable。對(duì)于隱式實(shí)現(xiàn)來(lái)說(shuō),你只需要調(diào)用"new A().Dispose()",但是對(duì)于顯式實(shí)現(xiàn)來(lái)說(shuō),Dispose不會(huì)是這個(gè)class的成員函數(shù)。唯一的調(diào)用方式是你先要cast到 IDisposable才行。(“new A().Dispose()”編譯不過(guò),但是“((IDisposable)new A()).Dispose()”可以編譯過(guò))。所以這樣就符合了設(shè)計(jì)的要求:提供Close(),隱藏Dispose(),并且實(shí)現(xiàn)了 IDisposable接口。

在.net的framework里,Close()被設(shè)計(jì)成public的,并且在Close()里面call被隱藏的Dispose(); Dispose()去call另一個(gè)virtual的Dispose(bool)函數(shù)。所以如果你從這個(gè)class繼承,你就必須實(shí)現(xiàn)Dispose (bool)方法。

調(diào)用者call Close()的時(shí)候就會(huì)call到你重載的那個(gè)Dispose(bool)方法去釋放資源。

查看完整回答
反對(duì) 回復(fù) 2021-10-24
?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

close是關(guān)閉而已,不釋放資源。就像開(kāi)門(mén)和關(guān)門(mén)一樣,對(duì)于你進(jìn)去做的事情他不管.
而dispose就是釋放資源!就是把StreamReader對(duì)象里面的數(shù)據(jù)給清空,不豪存儲(chǔ)空間.

查看完整回答
反對(duì) 回復(fù) 2021-10-24
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

Close();//關(guān)閉
Dispose();//消毀,這個(gè)不用管,自己用調(diào)用。

查看完整回答
反對(duì) 回復(fù) 2021-10-24
  • 3 回答
  • 0 關(guān)注
  • 303 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)