在 .net 執行時 gc 會負責清理記憶體,但是我們有時候需要手動清理資源(比如非託管資源不再使用的時候),在以前對於實現了idisposable介面的物件,我們會使用using語句來清理掉。例如如下**:
class
program
console.
writeline
("釋放完畢!");
}}public
class
demo
:idisposable
public
void
write()
// more code
//...........
//...........
//...........
}
上述**執行後會首先輸出 「我被呼叫了」,之後會輸出 「我被using釋放了」,最後輸出 「釋放完畢」。從8.0開始我們可以使用using 宣告來代替using(),這樣**會更簡單明瞭。我們將前面**裡的main方法修改如下:
static
void
main
(string
args)
執行修改後的**,首先輸出我被呼叫了,之後會輸出釋放完畢,最後輸出我被using釋放了。從輸出我們可以看出,dispose()最後才會被呼叫,那麼為什麼會是這樣呢?其實很簡單,是因為清理動作會發生在超出要清理的資源的作用域範圍的時候,也就是離開 main 方法時。 MySQL 8 新特性介紹
原文 what s new in mysql 8.0mysql是眾多 技術棧中的標準配置,是廣受歡迎的開源資料庫,已經推出了8.0的第乙個候選發行版本。mysql 8.0的新特性包括 根據mysql的策略 乙個新的 一般 版本發布的週期是18 24個月 mysql並沒有承諾mysql 8.0的發布日...
JDK8的新特性
這兩天開始看jdk8的新特性,先看了lembda表示式和stream,就乙個感覺,優雅。趕緊將這兩天的成果總結一下 lembda表示式是乙個簡潔 可傳遞的匿名函式,實現了把 塊賦值給乙個變數的功能 格式就是 parameters expression,需要注意的是 引數可以為空 引數為乙個值得時候,...
jdk8的新特性
lambda表示式 格式為 符號左邊為表示式需要的所有引數 符號右邊為表示式要執行的功能 將之前的匿名內部內作為引數傳遞直接可以使用lambda表示式完成 比如lists new arraylist new arraylist stirng public int compare string a,s...