Sto cercando di scoprire i vantaggi e gli svantaggi di un metodo con più valori di risultato.Valore restituito best practice vs Exception vs Enum
Ad esempio, sto utilizzando un metodo di accesso. Se l'accesso ha avuto successo, passerà, altrimenti ho bisogno di sapere perché ha fallito.
1. Ritorna vero o falso (Non abbastanza informazioni)
bool Login(string user, string password);
2. ritorno vero, se fosse successo, altrimenti un'eccezione
public class UnknownUserException : Exception { }
public class WrongPasswordException : Exception { }
bool Login(string user, string password);
3. Non restituire nulla Un'eccezione, se non fosse successo
public class UnknownUserException : Exception { }
public class WrongPasswordException : Exception { }
void Login(string user, string password);
4. Ritorna un valore di enumerazione
enum LoginResult
{
Successful
UnknownUser,
WrongPassword
}
LoginResult Login(string user, string password);
"Login" è solo un esempio di caso. Vorrei sapere quali sono i vantaggi e gli svantaggi delle diverse implementazioni e per quali casi sono più o meno appropriati.
1 e 2 non sono ovviamente degno di considerazione. # 3 è nella vena di come si fanno le cose in genere, ma l'unica persona attrezzata per riconoscere che forse # 4 è più appropriato nel tuo caso sei tu. – Jon
API è sincrono o asincrono? –
sincrono, mi spiace :) – Jan