1. ホーム
  2. c#

[解決済み] ?? 空文字列のための合体?

2022-04-20 22:01:31

質問

文字列が空であるかどうかをチェックすることが多くなっています(例えば "" またはnull)と条件演算子を使用します。

現在の例です。

s.SiteNumber.IsNullOrEmpty() ? "No Number" : s.SiteNumber;

これは単なる拡張メソッドで、等価です。

string.IsNullOrEmpty(s.SiteNumber) ? "No Number" : s.SiteNumber;

空であり、NULLではないので。 ?? ではうまくいきません。 A string.IsNullOrEmpty() のバージョンです。 ?? が完璧な解決策だと思います。 もっとすっきりした方法があるはずだと思うのですが(希望!)、なかなか見つからなくて困っています。

どなたか、.Net 4.0に限ってでもいいから、もっといい方法をご存じないですか?

どのように解決するのですか?

これを行うためのビルトインの方法はありません。 しかし、拡張メソッドが文字列またはNULLを返すようにすれば、合体演算子を動作させることができます。 しかし、これは奇妙なことで、私は個人的にあなたの現在のアプローチを好みます。

すでに拡張メソッドを使っているのだから、その値かデフォルトを返すメソッドを作ればいいじゃない。

string result = s.SiteNumber.ConvertNullOrEmptyTo("No Number");