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 のレビューも受けられます。
すべてのチャレンジ