「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > メソッドはヌルまたは空のコレクションを返す必要がありますか?

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

2025-01-26に公開
ブラウズ:598

Should Methods Return Null or Empty Collections?

nullまたは空のコレクションに戻る:ベストプラクティス

デザインが値タイプを返す方法としてセットを返すとき、それは問題を引き起こします:それはnullまたは空のコレクションを返す必要がありますか?ベストプラクティスは、あらゆる状況で空のコレクションを返すために強くお勧めします。

なぜ空のコレクションを選ぶのですか?

]

nullを返すことは、不必要なコードの複雑さと潜在的なランタイムエラーを引き起こす可能性があるため、悪い習慣です。たとえば、コレクション属性のnullを返す場合:

if(myinstance.collectionproperty!= null) {{ foreach(myinstance.collectionpropertyのvar item) / * CollectionPropertyがnullの場合、このコードが失敗する可能性があります */ }

myInstance.collectionpropertyが実際にnullである場合、このコードは異常を引き起こす可能性があります。それどころか、空のコレクションを返して、上記のコードを間違いなく実行できるようにすることをお勧めします。

if(myInstance.CollectionProperty != null)
{
  foreach(var item in myInstance.CollectionProperty)
    /* 如果 CollectionProperty 为 null,此代码可能会失败 */
}
リターンセットの属性については、属性を1回だけ初期化することをお勧めします。これは、属性を含むクラスを含むコンストラクター中に完了することができます:

パブリックリスト foos {public get;} パブリックバー

C#6を使用して、より簡潔なバージョンを使用します: public list foos {get;} = new list ();

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

public List Foos { public get; private set; }

public Bar() { Foos = new List(); }

public ienumerable getmyfoos() {{ innergetfoos()?? }

この方法により、innergetfoos()がnullを返しても、この方法は潜在的なエラーを防ぐために空のセットを返すことが保証されます。 
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3