C#NULLをチェックする異なる方法

C#NULLをチェックする異なる方法

もっと知りなさい、はい。

最后更新 2021/06/19 14:24
沙漠尽头的狼
预计阅读 2 分钟
分类
.NET
标签
.NET C#
  • 原文へのリンク:https//www.thomasclaudiushuber.com/2020/03/12/c-different-ways-to-check-for-null/
  • 著者:トーマス
  • 翻訳:砂漠の果ての狼

パラメータの値が空かどうかをチェックする古典的な方法は何ですか?C言語をしばらく使用している場合は、次の古典的な構文に精通しているでしょう:

public static int CountNumberOfSInName(string name)
{
  if (name == null)
  {
    throw new ArgumentNullException(nameof(name));
  }

  return name.Count(c => char.ToLower(c).Equals('s'));
}

C#7以降では、次のコードスニペットに示すように、isキーワードを使用してnullチェックを行うことができます。

if (name is null)
{
  throw new ArgumentNullException(nameof(name));
}

しかし、C#7では、さらに短い構文があります。廃棄物も導入される。これらは未使用で無視された変数で、コード内でアンダースコア(_)で表されます。空のマージ演算子と組み合わせて、空のチェックは次のように記述できます:

_ = name ?? throw new ArgumentNullException(nameof(name));

つまり、メソッド全体は以下のようになります:

public static int CountNumberOfSInName(string name)
{
  _ = name ?? throw new ArgumentNullException(nameof(name));

  return name.Count(c => char.ToLower(c).Equals('s'));
}

正直なところ、私はドロップアウトの最後の方法を使用するのが好きですが、一部の開発者にとっては多すぎるかもしれません。キーワードは非常に読みやすいと思います。私のお気に入りです。

is 关键字还有一个很大的优点,就是它忽略了任何==/!=运算符或者重载特定类。不管是否有操作符重载,它都将执行 null 检查。这比仅仅使用==更好。你可以在这篇博文中了解更多。

C#9.0のIsキーワードとNotパターン

C#9.0では、オブジェクトがnullでないことをチェックしたい場合、is式と論理notパターンを組み合わせることが非常に強力です。C#9.0以前は、オブジェクトがnullかどうかをチェックするには次のis式を使用する必要がありました。

if (!(name is null)) { }

名前がnullでないことをチェックするために以下の構文を使用する開発者もいます。

if (name is object) { }

しかし、上記の記述は読みやすくも理解しにくい。そのため、多くの開発者はまだ古典的なアプローチを好む。

if (name != null) { }

しかし、C#9.0からは、本当に読みやすいコードだと思います:

if (name is not null) { }

まとめまとめまとめ

So, with C# 9.0, you can write your null / not-nulll checks like below, and I think that’s readable: C#9.0では、以下のようにnull/not-nullチェックを書くことができます。これは読みやすいと思います。

if (name is null) { }

if (name is not null) { }

楽しいプログラミングを!

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读
同分类 / 同标签 2026/02/07

AOTの使用経験

プロジェクトの最初から、新しい機能が追加されたり、新しい構文が使用されたりするたびに、AOTリリーステストを行うという良い習慣を身につける必要があります。

继续阅读