我在C#,.Net 2.0中有一些遺留代碼,其中有人將OpenFileDialog和SaveFileDialaog從工具箱拖到窗體上。這會導致打開和保存對話框在其父對話框創建時被實例化,並且直到父對話框關閉。打開/保存表單實際上只用於一個地方,每個用於在父對話框的生命期間不總是打開/保存的支持文件;這對我來說似乎沒有效率。 我會做的是:爲什麼要在窗體上放置標準對話框?
using (OpenFileDialog openDlg = new OpenFileDialog())
{
//initialize openDlg...
if (openDlg.ShowDialog() != DialogResult.OK)
{
//handle OK result
}
}
這樣的打開文件對話框將被安置在using語句超出範圍的。除非我錯過了某些資源的快速處理(以及更快的垃圾回收)的價值,否則就不需要在需要時實例化Open/Save File對話框。 即使每次使用其父對話框時都使用了打開/保存對話框,但我並沒有看到任何時候使用它們的重要價值。我的問題是我錯過了什麼?保持開放/保存對話一直有效嗎? 我假設所有其他標準對話框的答案都是相同的:ColorDialog,FolderBrowserDialog和FontDialog。
我同意你的「我會做什麼」部分。由於通用對話需要人機交互,所以我無法想象這個性能是一個大問題。如果你有足夠的通用對話實例,那麼內存就是一個大問題,我會質疑你在做什麼。 – Jack 2010-07-27 20:14:13