SqlConnectionと をSqlCommand実装するので、それらをステートメントIDisposableでラップしています。using
ただし、メソッドでそれらを作成してからusingステートメントに渡すため、メソッドによって作成されたものを閉じるブレースが破棄するかどうかを知りたいとusing思いSqlCommandました。
だから私はこれを試しました:
private void button1_Click(object sender, EventArgs e)
{
SqlCommand command = new SqlCommand();
command.CommandTimeout = 10;
command.Disposed += s_Disposed;
using (SqlCommand tempCommand = command) { }//This is where even "command" is supposed to get disposed.
Text = command.CommandTimeout.ToString();
}
void s_Disposed(object sender, EventArgs e)
{
MessageBox.Show("Disposed");
}
MessageBoxそして、廃棄を暗示する do が表示されたのを見て驚いたが、Text は "10" だった。
なんで?