C#のIDisposableとusingでリソースを解放する
このレッスンでは、using宣言を使い、エラーが起きた場合も含めてリソースが必ず適切なタイミングで解放されるようにします。
はじめに
.NETのメモリはガベージコレクター(garbage collector)が自動で回収しますが、ファイル、ネットワーク接続、データベース接続などのリソースは、使い終わったらすぐに解放するべきです。こうしたオブジェクトは、リソースを解放するDisposeメソッドを持つIDisposableインターフェースを実装しています。
using var writerという宣言は、プログラムがそのスコープを抜けるとき、途中で例外が起きた場合も含めて、writerのDisposeメソッドが自動で呼ばれることを保証します。そのため、リソースの後片付けのためにtry/finallyブロックを自分で書く必要はありません。
実行できる C# の例
C#
Program.cs
using System;
using System.IO;
class Program
{
static void Main()
{
using var writer = new StringWriter();
writer.Write("resource-safe output");
Console.WriteLine(writer.ToString());
}
}
resource-safe outputデバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ