string someVariable = (string) someOtherVariable;
esta es su buen casting normales de edad y va a lanzar una excepción si se intenta convertir algo en algo que no se puede lanzar (por lo tanto, algunas veces usted necesita para comprobar si son moldeable)
string someVariable = someOtherVariable.ToString();
no es realmente la fundición, la ejecución de un método que puede provenir de diferentes lugares (interfaces), sino que todos los objetos en C# tienen, ya que heredan del objeto Object, que lo tiene.Tiene una operación predeterminada que le da el nombre del tipo del objeto, pero puede sobrecargarlo para imprimir lo que quiera que su clase imprima en el método ToString.
string someVariable = someOtherVariable as string;
Ésta es una nueva C# casting, se comprobará en primer lugar si es moldeable mediante el uso de un variable is string
primero y luego hacer la colada si es válido o devolver un valor nulo si no es así, por lo que podría ser un silencio error si espera excepciones, ya que debe verificar contra nulo.
Básicamente
myType as myOtherType
es lo mismo que:
var something = null;
if(myType is myOtherType)
{
something = (myType) myotherType;
}
excepto que como será comprobar y fundido en un solo paso, y no en 2.
Si no puedo lanzar alguna OtraVariable en una cadena, ¿qué hará un lanzamiento seguro? – Deane
@Deane: En su lugar devolverá nulo. – rmac
Vale la pena mencionar que el método 'ToString' básicamente le pide a someOtherVariable que se represente a sí mismo como una cadena y la implementación predeterminada (heredada de Object) simplemente devuelve el nombre de la clase. En cuanto al "yeso seguro", "como" intenta empacar el valor de alguna OtraVariable en una caja en forma de cadena, y simplemente deja la caja vacía si no encaja (es decir, algunaVariable será nula si alguna OtraVariable no se puede convertir a cuerda). – Rory