LoginSignup
2
4

More than 5 years have passed since last update.

C# 7.0 パターンマッチングで楽々nullチェック

Last updated at Posted at 2018-12-17

概要

C# 7.0にて導入されたパターンマッチング
本来はアップキャストされたオブジェクトを安全にダウンキャストして分岐を可能にするものだが実はnullチェックにも使える

// 本体の使い方
object obj = "objectなstring";
if (obj is string str)
{
//このスコープ中のみobjがstringにキャストされたstr変数を使うことができる。
//キャストできなかった場合はif内部を通らない
}

nullチェックにも活用可能

C#ではnullは型無しとしているためその仕様を逆手に取った方法

従来の方法

var obj = GetNullOrString(); //半々の確率でnullか実体のあるstringを返してくれるメソッド
if (obj != null)
{
//nullではない場合if内部を通る
}

パターンマッチング

if (GetNullOrString() is string str)
{
//null時には型無し = string型では無いためif内部を通らない
//但しスコープはif文限りのため外からはstr変数を使えないことに注意
}
2
4
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
2
4