読者です 読者をやめる 読者になる 読者になる

C#_ジェネリックとは

型 に依存しないクラスやメソッドを記述するための仕組み
C# は型を指定しないと記述できない。メソッドを作成する時は必ず型を指定する。

generics : 総称的な、一般的な(名称)、包括的な
単数形では名詞を指さない。Java ではジェネリクスという語訳が一般的。
ジェネリックになっているのは、(複数形 s は一律削除するという)マイクロソフト翻訳機ルール。

 

ex) testJ がジェネリックで記述したメソッド( 関数 )。

private void hoge()
{
    testJ<int>(5);
    //testJ<double>(4.2);
    //testJ<string>("八");
}

private void testJ<T>(T getItem)
{
    textBox1.Text = getItem.ToString();
}

 上記の場合は、用意したテキストボックスに「5」が表示される。
double で実行した場合は 4.2 が表示され、string の場合は 八 が表示される。
<T>仮の型名 ( 型引数という )。T でなくてもいいが、T と書くルールらしい。

型パラメータの名前付けガイドライン
https://msdn.microsoft.com/ja-JP/library/0zk36dx2(VS.80).aspx

 

ex) をジェネリックで書かないとすると、
引数の型を int、doublestring で引数を指定したメソッドを書かなければならない。

private void hoge()
{
    testSetS(5);
    testSetD(4.2);
    testSetSt("");
}

private void testSetS(int getItem)
{
    textBox1.Text = getItem.ToString();
}
private void testSetD(double getItem)
{
    textBox1.Text = getItem.ToString();
}
private void testSetSt(string getItem)
{
    textBox1.Text = getItem;
}

 

 こちらから参照。
http://www.atmarkit.co.jp/ait/articles/0602/11/news011.html
http://ufcpp.net/study/csharp/sp2_generics.html

 

疲れたので以上。
もう少し詳しいジェネリッククラス・メソッドの書き方は ↓。