Sollen Funktionen null oder ein leeres Objekt zurückgeben?

Was ist der best-practice -, wenn die Rückgabe von Daten von Funktionen. Ist es besser, um wieder eine Null oder ein leeres Objekt? Und warum sollte man das tun, den einen über den anderen?

Bedenken Sie:

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;
}

Können vorgeben, dass es sein würde, gültige Fälle, in diesem Programm, dass es keine Benutzer-Informationen in die Datenbank mit diesem GUID. Ich könnte mir vorstellen, dass es nicht angebracht wäre, eine Ausnahme in diesem Fall?? Auch ich bin unter dem Eindruck, dass die Ausnahmebehandlung kann die Leistung beeinträchtigen.

Kommentare dem Thema
Ich denke, du meinst if (!DataExists). Kommentarautor: Sarah Vessels
Dies ist eine architektonische Frage und ist vollkommen angemessen. Die OP ' s Frage ist gültig, unabhängig von der business-problem zu lösen versuchen. Kommentarautor: Joseph Ferris
Diese Frage wurde bereits hinreichend beantwortet. Ich denke, das ist eine sehr interessante Frage. Kommentarautor: John Scipione
'getUser()' null zurückgeben sollte. 'getCurrentUserInfo()' oder 'getCurrentPermissions()', OTOH, wäre aufschlussreich Fragen -- Sie sollten zurückkehren a nicht-null-Antwort-Objekt unabhängig davon, wer bzw. ob jemand angemeldet ist. Kommentarautor: Thomas W
Nein @Bergi, das andere ist eine doppelte. Mir wurde zuerst gefragt, im Oktober, die andere wurde gebeten, 3 zwei Jahre später im Dezember. Plus die anderen Gespräche über eine Sammlung, die ist etwas anders. Kommentarautor: 7wp

InformationsquelleAutor der Frage 7wp | 2009-10-26

Schreibe einen Kommentar