C#
WindowsForm

Form.Showをusingで囲んじゃだめだよ

More than 1 year has passed since last update.

Windows FormsのFormはIDisposableなので、usingで囲って使うことがよくある。

よくある例
using (var f = new Form())
{
    f.ShowDialog();
}

ShowDialogだとこれでいいんだが、Showだと問題がある。

よくない例
using (var f = new Form())
{
    f.Show();
}

Showメソッドはすぐに処理が返ってくるので、即座にusingを抜けてDisposeされる。
つまり、表示した次の瞬間には消える。

usingを使わず、単にnewしてShowすればいい。

よい例
var f = new Form();
f.Show();

Showメソッドで表示した場合、Formを閉じた時点でリソースも解放されるそうだ(細かいことは未確認)。

みんなはForm.Showをusingで囲むなんてあほなミスしないでね!

一応サンプルコード
.NET 4.6.1で確認したけど、たぶんバージョンによらないと思う。