2011-09-03 23 views
7

Duplicar posibles:
variable.ToString() vs. Convert.ToString(variable)Diferencia entre Convert.ToString() y .ToString() en C#?

¿Cuál es la diferencia entre Convert.ToString() y .ToString() en C#?

Cuando intento convertir dataRow[i] a una cadena usando ToString(), recibo un error. ¿Cómo puedo solucionar esto?

+0

¿cuál es el tipo de dr [0]? –

+0

Por lo que yo sé, ni 'Tostring()' ni 'tostring()' existen. C# distingue entre mayúsculas y minúsculas; ¿Se refiere a 'ToString', o tiene alguna otra función definida por el usuario? Muéstranos tu código fuente que causa el error y muéstranos el error. –

+0

También puede haber el "problema" de 'DbNull' (que no es' nulo'); y es posible que necesite usar 'IsNull (col)', de lo contrario, el índice ('[col]') puede fallar IIRC. En cualquier caso, * incluya * información relevante: "recibir un error" es tan útil como "no funciona". –

Respuesta

8

Hay una diferencia simple pero importante entre ellos ...

ToString() elevar una excepción cuando el objeto es nulo

Así, en el caso de Object.toString(), si el objeto es nulo, elevar Excepcion de referencia nula.

Convert.ToString() devuelven String.Empty en caso de objeto nulo

(cadena) Reparto de asignar el objeto en caso de nula

Así que en caso de MiObjeto o = (cadena) NullObject;

Pero cuando usa o para acceder a cualquier propiedad, levantará NullReferenceException.

http://maniish.wordpress.com/2007/10/08/difference-between-tostring-vs-converttostring-vs-string-cast/

15

Básicamente ambos se utilizan para convertir un valor a una cadena, pero hay una diferencia básica entre ellos:

Cuando tenemos un objeto nulo, Convert.ToString(Object); maneja el valor NULL mientras que Object.ToString(); no maneja el valor NULL y arroja NULL Excepción de referencia.

7

Primero, Object.ToString() es una función virtual en el objeto de la clase base. Cualquier clase puede anular ToString() para proporcionar su propia implementación. Convert.ToString() es un método estático que intenta tomar muchos argumentos diferentes y convertirlos en una cadena significativa. Además, Object.ToString() fallará si el objeto que lo llama es nulo.

Además, Object.ToString() no siempre convierte el objeto a la forma de cadena que podría esperar. Por ejemplo, la función base Object.ToString() siempre devolverá el nombre de tipo completo del objeto. Cualquier clase puede implementar ToString() como lo desee y esto no necesariamente tiene que ser algo significativo.

1

Hay una diferencia básica entre Convert.ToString y .Tostring. Convert.ToString manejará la excepción nula, pero .Tostring arrojará el error

Cuestiones relacionadas