[備忘録] C#のジェネリックについて学びました

[備忘録] C#のジェネリックについて学びました

備忘録

  • ジェネリック:public class <T> ←こんなやつ。型だけが異なるものを共通化にして使うこと
// ジェネリッククラス
public class keyValue <T> where T: class IEntity
{

   private T? _value;

}
  • タイプセーフ:あらゆるデータに「型」が存在し、コンパイル時あるいは実行時にそれが厳格にチェックされること
    • 型が保証されない。型変換が必要
  • ボックス化:値型からobject型に変換するプロセス。負荷が大きい
// Tが型パラメータ 使う人が型を決める ジェネリック型
public class keyvalue<T>  
{
   public T value {get; set;}

}
  • 型パラメータの説明的な名前にはTという接頭辞を付ける
  • 制約:Tは本物であることをコンパイラに伝えること
  • object型としてクラスの中では使えない
public class keyValueA <T> where T :制約(Formとか)

制約がFormの場合、TはFormかFormを派生しているものしか使えない。