【C#】パターンマッチング

パターンマッチング

データの型およびその中身を確認し、指定したパターンと一致した場合に処理を実行する機能。

switch

switch caseで使用する。
class A{}
class B : A{}
class C : A{}

public void Something(A inst)
{
  switch(inst)
  {
    case A a:
      // something
      break;
    case B b:
      // something
      break;
    case C c:
      // something
      break;
  }
}

is as

class A{}
class B : A{}
class C : A{}

public void Something1(A inst)
{
  var b = inst as B;
  if (b != null)
  {
   // something
  }
}

public void Something2(A inst)
{
  if (inst is B b)
  {
   // something
  }
}