2010-09-20 18 views
7

He leído algunas preguntas relacionadas con este tema, pero ninguna tiene sentido para mí. Tal como lo entiendo, en algunos casos puedes usar el reparto y el parse indistintamente y lograr el mismo resultado.Reparto versus análisis

¿Hay algunas pautas generales que pueden ayudarme a decidir cuándo elegir un enfoque sobre el otro?

+1

El casting y el análisis son muy diferentes. ¿Podría mostrar un ejemplo de dónde cree que se usaron de manera similar? – Jens

+0

someString.ToString() vs (string) (someString) o long.Parse (someCalculation) vs (long) (someCalculation) – Kory

Respuesta

7

Generalmente usa Parse() en una cadena cuyo valor representa un valor válido del tipo al que está convirtiendo.

La conversión, por otro lado, se utiliza mejor cuando se tiene un objeto de un tipo derivado, pero se almacena en una variable base, y es necesario usarlo como su tipo más específico.

Es decir, si tiene "1234" puede Parse() que en un int. Pero si tiene

object variable = 1234; 

Debe convertirlo para recuperarlo como un int.

3

La conversión es más una conversión de un objeto de un tipo similar. Un buen ejemplo es de flotante a entero o de doble a decimal. El análisis es solo eso; analizando. La definición o el uso del análisis sintáctico es un poco más amplio. Puede escribir un método Parse en su propio objeto similar al de int.Parse o int.TryParse para convertir una cadena en su tipo de objeto. El análisis también podría referirse a cosas como la manipulación de cadenas para recopilar los datos que necesita de una cadena determinada. "Analizar" no necesariamente se relaciona con "Casting".

Otro buen ejemplo de conversión es cuando se usa herencia o interfaces.

public interface ICar { 
    // ... 
} 

public class Corvette : ICar { 
    // ... 
} 

public void Foo() { 
    Corvette mycar = new Corvette(); 
    // Now do a cast 
    ICar = (ICar)mycar; 
} 
3

Tener una mirada here, en respuesta integral de Mark Gravell (le responder acerca de la conversión también ..).

Cuestiones relacionadas