関数は null または空のオブジェクトを返す必要がありますか? 質問する

関数は null または空のオブジェクトを返す必要がありますか? 質問する

何ですかベストプラクティス関数からデータを返すとき。Null を返すほうがよいのでしょうか、それとも空のオブジェクトを返すほうがよいのでしょうか。また、なぜどちらか一方を返すべきなのでしょうか。

このことを考慮:

public UserEntity GetUserById(Guid userId)
{
     //Imagine some code here to access database.....

     //Check if data was returned and return a null if none found
     if (!DataExists)
        return null; 
        //Should I be doing this here instead? 
        //return new UserEntity();  
     else
        return existingUserEntity;
}

このプログラムでは、データベースにその GUID を持つユーザー情報が存在しないという有効なケースがあると仮定します。この場合、例外をスローするのは適切ではないと思いますか?? また、例外処理によってパフォーマンスが低下する可能性があるという印象を受けます。

ベストアンサー1

データが利用できないことを示す場合は、通常、null を返すのが最善の策です。

空のオブジェクトはデータが返されたことを意味しますが、null を返すことは何も返されなかったことを明確に示します。

さらに、オブジェクトのメンバーにアクセスしようとすると null を返すと null 例外が発生します。これは、バグのあるコードをハイライトするのに役立ちます。何も含まれていないメンバーにアクセスしようとするのは意味がありません。空のオブジェクトのメンバーにアクセスしても失敗しないので、バグが発見されない可能性があります。

おすすめ記事