object o;
¿Hay alguna diferencia entre o.ToString()
y (string) o
?¿Hay alguna diferencia entre el método ToString y la conversión a la cadena?
object o;
¿Hay alguna diferencia entre o.ToString()
y (string) o
?¿Hay alguna diferencia entre el método ToString y la conversión a la cadena?
Hay una diferencia, sí. Cada objeto tiene un método ToString
, pero no todos los objetos se pueden convertir a una cadena.
int i = 10;
string s1 = i.ToString(); // OK
string s2 = (string)i; // Compile error.
object o = 10;
string s3 = o.ToString(); // OK
string s4 = (string)o; // Runtime error.
ToString()
plantea una excepción cuando el objeto es null
, (string)
conversión no lo hace.
Sí, ambos son muy diferentes.
string anObjectString = (string)anObject;
es un yeso o una conversión Tipo Tipo solamente tendría éxito si la conversión es un tipo válido uno
ToString()
es un método disponible para todo el objeto (s) en el Marco. Es un método virtual en el que la implementación predeterminada le devuelve el nombre del tipo del objeto.
Estamos comparando manzanas con naranjas aquí ..
Sí, ToString()
es un método que implementa cada tipo (ya que cada tipo hereda de System.Object
que implementa el método). Ciertos tipos pueden anular este método para proporcionar sus propias implementaciones de anulación personalizadas. Una llamada a ToString()
siempre debe tener éxito y devolver una instancia de cadena (aunque puede ser nula para algunas implementaciones).
var x = new AnyArbitraryObjectType();
var y = x.ToString(); // will always succeed (if ToString has not been overridden, or if it has been overridden properly)
Un molde es la conversión de una referencia de objeto dada a una referencia escrita como una cadena. Si la referencia que se lanza no es una cadena, entonces el lanzamiento fallará.
var a = "hello";
var b = 5;
var x = (string)a; // will succeed
var y = (string)b; // will fail with InvalidCastException
básicamente ToString() es una función que devuelve una cadena que representa el objeto que usted aplicó.
cadena como un tipo es como un int - una primitiva (en C# su objeto)
Object.toString() convertir el objeto en objeto string.If tiene un valor nulo, arrojará una excepción porque no hay null tiene el método ToString().
Considerando que (cadena) objeto es un proceso de unboxing de tipo de referencia a tipo de valor. aquí el valor del objeto está copiando en una nueva instancia del tipo de cadena. si el objeto es nulo, asignará un valor nulo.
Si lo que busca es segura conversión de un objeto a la cadena sólo tiene que utilizar:
string s = Convert.ToString(o);
¿Por qué lo preguntas? Cuidado para explicar la imagen más grande? –