假設一個類定義:當使用語句退出範圍類成員和using語句
class TestClass
{
MemoryStream s = new MemorySteam();
void DoStuff()
{
using (s = new MemoryStream())
{
// Do stuff
}
}
}
發生s
什麼?
編輯: 在不同的方法中使用s
會出現問題嗎?
編輯2:會有一個未引用的對象留在MemoryStream的第一個實例化中嗎?
除了各種「它的處置方法被調用」(這都是正確的)之外,還值得注意的是它有資格進行垃圾回收(因爲e在功能中未進一步參考)。 –
@ChrisShain我不是100%沒有運行測試,但我不相信這是一個保證。你可以實現你的處置不當,並把事件連接起來。這會阻止它被GC'd –
我剛剛更新了我的答案,以回答您的編輯FYI –