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 サイトの他の関連記事を参照してください。