オブジェクト指向 C#

C#のジェネリック

このレッスンでは、型の安全性を保ちながら、いろいろなデータ型で使い回せるジェネリッククラスを書きます。

はじめに

ジェネリックを使うと、Tで表すまだ決まっていない型でクラスやメソッドを書き、具体的な型は使うときに選べます。そのため、コードを1回書くだけでint、string、そのほかどんな型でも使えて、しかもコンパイラは型を完全にチェックし続けます。

クラスBox<T>はT型の値を1つ保存します。new Box<int>(42)と作るとTはintになるので、プロパティValueはint型になり、文字列を代入しようとするとコンパイラがすぐにエラーを出します。同じクラスを、書き直さずにBox<string>やBox<double>として使えます。

実行できる C# の例

C#
コードを実行 →
Program.cs
using System;

class Box<T>(T value) { public T Value { get; } = value; }

class Program
{
    static void Main()
    {
        var box = new Box<int>(42);
        Console.WriteLine(box.Value);
    }
}
実行結果
42

デバッガーで練習する

大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ