2011-08-11 14 views
6

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

9

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.

+0

+1 a ambos para completar. – deepee1

0

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.

2

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.

+0

+1 para TryParse aunque id todavía va para dlevs ambos pero con un análisis de prueba también – Manatherin

Cuestiones relacionadas