やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

C#の概念 ジェネリクス

 ジェネリックとも呼ぶ。

成果物

コード

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

 ジェネリクスはクラス定義するときクラス名の横に<>で宣言する。<>の中にTなど任意名を書く。Tはクラス内において任意の型として扱える。たとえばプロパティ宣言時の型として。

 Tの具体的な型は、コンストラクタ呼出時に決める。以下ではint, stringをセットしてみた。

class Main {
    public void Run() {
        var i = new MyValue<int>(3);
        var s = new MyValue<string>("abc");
        Console.WriteLine($"{i.Value}, {s.Value}");
    }
}
3, abc

 複数ほしいときは<T,U>のようにカンマ区切り。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux