Al escribir un método que toma una cadena y rellena un poco basado en ella, ¿es mejor tener un método Parse(string s)
estático como Int32.Parse()
o sobrecargar el constructor para que tome una cadena?Método Parse o sobrecarga el constructor
Respuesta
Prefiero la versión del constructor, pero incluir ambos es fácil, ya que el constructor puede simplemente llamar al Parse
. Este es el patrón seguido por el Guid
estructura (y otros posibles también.)
debo añadir que si no está tratando con un struct
, entonces el método static
probablemente debería estar refiriéndose al constructor (o incluso una método separado que ambos pueden llamar) ya que no se puede asignar al this
en un constructor class
.
EDITAR: Como TrueWill señala, si lo hace incluir Parse
, debe incluir TryParse
también. Por cierto, Guid
es una vez más instructivo: el método Parse
en realidad usa TryParse
, y solo arroja una excepción si TryParse
devuelve false
.
Yo recomendaría usar .Parse (string s) si es un objeto simple, si el objeto almacena más de 1 a 2 valores, debe usar el constructor, o en otras palabras, no analizar si el valor de retorno será un instancia con memebers no afectado por el valor de análisis.
Si el método puede fallar debido a una cadena no válida, que se inclinaba hacia Analizar e incluyen TryParse según el TryParse pattern.
+1 para TryParse aunque id todavía va para dlevs ambos pero con un análisis de prueba también – Manatherin
- 1. ¿Constructor de "base" de sobrecarga o "este" constructor?
- 2. Sobrecarga del método: ¿diseño bueno o malo?
- 3. Java: método de anulación o sobrecarga?
- 4. Confusión en el constructor sobrecarga Ejemplo
- 5. C++ - Sobrecarga Constructor - privada y pública
- 6. sobrecarga estática + Método dinámico falla
- 7. Scala: método \ sobrecarga del operador
- 8. Sobrecarga del método `toInt` existente
- 9. método de sobrecarga y polimorfismo
- 10. Asp.Net MVC - Sobrecarga método Acción
- 11. Sobrecarga de método Objective-C
- 12. Método de sobrecarga. ¿Como funciona?
- 13. método de sobrecarga en python
- 14. Decodificador de sobrecarga de método
- 15. Sobrecarga de herencia y método
- 16. constructor o constructor de copia?
- 17. Constructor vacío o sin constructor
- 18. Java: ¿Un constructor o método que aceptará una matriz o conjunto o lista o ...?
- 19. ¿Sobrecarga del método en Objective-C?
- 20. Método de sobrecarga con los tipos C#
- 21. sobrecarga de método Java + envío doble
- 22. C# una resolución mejorada de sobrecarga Método
- 23. Método de sobrecarga. ¿Puedes abusar de eso?
- 24. Calling sobrecarga de constructor cuando ambos tienen una sobrecarga misma firma
- 25. Método de resolución de sobrecarga comportamiento inesperado
- 26. sin sobrecarga para el método "ToString" toma 1 argumentos
- 27. Navaja: Sin sobrecarga para el método 'Escribir' toma 0 argumentos
- 28. Método de sobrecarga en los servicios web
- 29. cadena Parse en tipo numérico anulable (1 o 2 liner)
- 30. sobrecarga y sobrecarga de Java
+1 a ambos para completar. – deepee1