LoginSignup
1
1

More than 3 years have passed since last update.

【C#】ジェネリック

Posted at

★ジェネリックとは
・様々な型に対応できるようにパラメータとして与え、オブジェクトを定義できるようにした機能

◇ジェネリッククラス
特定のデータ型の引数の差異を一元化してコードを簡略化することが可能

ジェネリッククラスの記述方法
//型に依存していない場合
public class SampleJeneric<VAR>
{
    public VAR Test(VAR a1){ return a1; }
}

//型に依存しているメソッドを呼び出す場合
public class SampleJeneric<VAR>
    where VAR : struct
{
    public VAR Test(VAR a1){ return a1; }
}


◇ジェネリックメソッド
・様々なデータに対応したメソッド
・引数の数やデータ型、戻り値の型を指定

ジェネリックメソッドの記述方法
int Min<T>(int a, int y)
 where int : IComparable
{
    return a.ComparaTo(b) < 10 ? a : b;
}

★ジェネリック型制約
・ジェネリックメソッドの型引数が持つ機能を指定し、対応できるようにします。
・各製薬は併用指定可能

ジェネリック型制約の種類

種類 内容
where T:struct 値型のみ
値型と参照型を参照
他制約と併用する場合は最初に記述
where T:class 参照型のみ
他制約と併用する場合は最初に記述
where T:クラス名 指定したクラス、またはその派生クラス
where T:インターフェース名 指定したインターフェイスクラスを継承するクラス
where T:new() 引数無しのコンストラクターを持つクラス
他制約と併用する場合は最初に記述
where T:unmanaged アンマネージ型
値型をポインタで扱う場合に使用
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1