ホームページ > バックエンド開発 > C++ > メソッドは Null または空のコレクションを返す必要がありますか?

メソッドは Null または空のコレクションを返す必要がありますか?

Linda Hamilton
リリース: 2025-01-25 15:01:09
オリジナル
286 人が閲覧しました

Should Methods Return Null or Empty Collections?

null または空のコレクションを返す: ベスト プラクティス

戻り値の型としてコレクションを返すメソッドを設計する場合、null または空のコレクションを返す必要があるかという疑問が生じます。ベスト プラクティスでは、すべての場合において空のコレクションを返すことを強くお勧めします。

なぜ空のセットを選択するのでしょうか?

null を返すことは、コードが不必要に複雑になり、実行時エラーが発生する可能性があるため、悪い習慣です。たとえば、コレクション プロパティに対して null を返す場合:

<code class="language-c#">if(myInstance.CollectionProperty != null)
{
  foreach(var item in myInstance.CollectionProperty)
    /* 如果 CollectionProperty 为 null,此代码可能会失败 */
}</code>
ログイン後にコピー

myInstance.CollectionProperty が実際に null の場合、このコードは例外を引き起こす可能性があります。代わりに、空のコレクションを返し、上記のコードがエラーなしで確実に実行できるようにすることをお勧めします。

プロパティのベストプラクティス

コレクションを返すプロパティの場合、プロパティを 1 回だけ初期化することをお勧めします。これは、プロパティを含むクラスのコンストラクター中に実行できます:

<code class="language-c#">public List<foo> Foos { public get; private set; }

public Bar() { Foos = new List<foo>(); }</code>
ログイン後にコピー

C# 6 では、よりクリーンなバージョンが利用可能です:

<code class="language-c#">public List<foo> Foos { get; } = new List<foo>();</code>
ログイン後にコピー

メソッドのベストプラクティス

コレクションを返すメソッドの場合、実際のコレクションが存在しない場合は、空のコレクションが返されます。この目的には、Enumerable.Empty() メソッドを使用できます:

<code class="language-c#">public IEnumerable<foo> GetMyFoos()
{
  return InnerGetFoos() ?? Enumerable.Empty<foo>();
}</code>
ログイン後にコピー

このアプローチにより、InnerGetFoos() が null を返した場合でも、メソッドは空のコレクションを返し、潜在的なエラーを防ぐことができます。

以上がメソッドは Null または空のコレクションを返す必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート