Cual es la diferencia?

10/03/2005 - 20:01 por Carlos Xudiera | Informe spam
Cual es la diferencia entre estas dos expresiones:

Operator = (string) MyStack.Pop();
Operator = MyStack.Pop().ToString();

El problema es que con la primera me dice que hay un error al tratar de
hacer la conversion y con la segunda me funciona perfectamente. ¿Cual podria
ser el problema?
Gracias.
 

Leer las respuestas

#1 Carlos Xudiera
10/03/2005 - 21:08 | Informe spam
Déjame explicarme mejor para que se me entienda. Estoy haciendo un evaluador
de funciones y en la pila lo que pongo son los operadores (estoy usando la
notación polaca) por lo tanto me parece que el objeto es realmente un string
siempre en este caso. Por eso es que me surge la duda, porque tengo la
seguridad de que siempre el objeto que tengo en la pila es un string,
incluso a la hora de adicionar los operadores a la pila lo hago de esta
manera:
MyStack.Push(Funcion[i]);
Donde Funcion es de tipo string.
Gracias.


"A.Poblacion" wrote in
message news:
"Carlos Xudiera" wrote in message
news:
> Cual es la diferencia entre estas dos expresiones:
>
> Operator = (string) MyStack.Pop();
> Operator = MyStack.Pop().ToString();
>
> El problema es que con la primera me dice que hay un error al tratar de
> hacer la conversion y con la segunda me funciona perfectamente. ¿Cual
podria
> ser el problema?

En ambos casos estás convirtiendo un Object a String. Pero la primera
sentencia solo funciona si el Object _es_ realmente un string y da un


error
si el object es otra cosa, mientras que la segunda llama al método


ToString
del objeto, que siempre devuelve algún string sea lo que sea el objeto (lo
que pasa es que, según cómo sea el objeto, puede ser que el string que te
devuelva sea realmente una buena representación del objeto o que te


resulte
completamente inútil).


Preguntas similares