Estaba buscando un código que heredé y no pude decidir si me gusta un poco de código.¿Debería un método de conexión devolver un valor?
Básicamente, hay un método que tiene el siguiente aspecto:
bool Connect(connection parameters){...}
Devuelve cierto si se conecta correctamente, en caso contrario.
He escrito un código como ese en el pasado, pero ahora, cuando veo este método no me gusta por una serie de razones.
Es un código fácil de escribir que simplemente ignora el valor devuelto, o no se da cuenta de que devuelve un valor.
No hay forma de que devuelva un mensaje de error.
Comprobación del retorno del método en realidad no se ven bien:
si {....}
pude volver a escribir código para (Connect (...)!) lanza una excepción cuando no se conecta con éxito, pero no considero que sea una situación excepcional. En vez estoy pensando en refactorización el código como sigue:
void Connect(Connection Parameters, out bool successful, out string errorMessage){...}
Me gustaría que otros desarrolladores tienen que proporcionar las cadenas de éxito y error para que sepan el método tiene las condiciones de error y puedo saber devolver un mensaje
¿Alguien tiene alguna idea al respecto?
Gracias -Matt
Me gusta este enfoque. Ciertamente deja las cosas claras. Creo que combinar el método TryConnect (...) con la sugerencia de Foovanadil de un tipo de devolución personalizado es lo que voy a hacer. –
Si su conexión es de corta vida, también podría considerar la posibilidad de regresar IDisposable para permitir una fácil limpieza de la conexión como sigue: usando (var connection = connect (...)) // –