ジェネリックとも呼ぶ。
成果物
コード
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>
のようにカンマ区切り。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13 ※
- bash 4.4.12(1)-release ※
- SQLite 3.29.0 ※
- C# dotnet 3.0.100 ※
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux