重要な C# トピック

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 のレビューも受けられます。

すべてのチャレンジ