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.

Preguntas similare

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).


Respuesta Responder a este mensaje
#2 Carlos Xudiera
11/03/2005 - 04:38 | Informe spam
De acuerdo. ¿Y un char no se puede convertir a string?

"A.Poblacion" wrote in
message news:#

"Carlos Xudiera" wrote in message
news:OGOi$
> 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.

Si Funcion es un string, entonces Funcion[i] es un char, no un string.



Respuesta Responder a este mensaje
#3 A.Poblacion
11/03/2005 - 07:39 | Informe spam
"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).
Respuesta Responder a este mensaje
#4 A.Poblacion
11/03/2005 - 08:19 | Informe spam
"Carlos Xudiera" wrote in message
news:OGOi$
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.



Si Funcion es un string, entonces Funcion[i] es un char, no un string.
Respuesta Responder a este mensaje
#5 Jorge Perez
14/03/2005 - 17:59 | Informe spam
Si se puede pero utiliza ToString(), ya que no es lo mismo

x = (string)(char)
x = (string)(string)


De acuerdo. ¿Y un char no se puede convertir a string?

"A.Poblacion" <earthling-


wrote in
message news:#

"Carlos Xudiera" wrote in




message
news:OGOi$
> 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.

Si Funcion es un string, entonces Funcion[i] es un




char, no un string.







.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida