次のコードがあります。
class SampleClass : IDisposable
{
public void Dispose()
{
Console.WriteLine("Execute Dispose!");
}
}
static void Main(string[] args)
{
SampleClass sc = new SampleClass();
try
{
throw new Exception();
}
finally
{
sc.Dispose();
}
}
しかし、これを実行してもExecute Dispose!
メッセージが出力されません。これはなぜですか?
アップデート:
コードを次のように変更した場合:
static void Main(string[] args)
{
SampleClass sc = new SampleClass();
try
{
try
{
throw new Exception();
}
finally
{
sc.Dispose();
}
}
catch
{
throw;
}
}
最初にメッセージを出力してからクラッシュします。
私が考えているのは、アプリが最初にクラッシュした場合、好きなように破棄できるかということです。
私はそれが簡単であることを知っています, しかし、私は本当に何をもっと学ぶべきか.