¡Hola a todos!
Vengo del VB al C# y me he encontrado con muchos problemas. Uno de ellos es la utilización del MessageBox. Yo solía utilizar este control para ver el contenido de una variable en modo ejecución. Por ejemplo, en el metodo:
private void OnKeyDown(object sender, KeyEventArgs e)
{
MessageBox.Show(e.KeyValue);
}
me devuelve el siguiente error:
Argument '1': cannot converto from 'int' to 'string'
¿Qué puedo hacer para poder ver en pantalla con un MessageBox el valor de la tecla pulsada en cada momento?
Gracias.
MessageBox.Show(e.KeyValue.ToString());
Otro "Visual Basiquero" a la 6º potencia como yo :lol: Lucha, VB.NET no permite hacer autocasting de tipos de datos con las variables como mas o menos permitia de forma transparente VB6. En VB.NET si algo es String le tienes que pasar por narices un String (contando con que la clausula Option Strict esta activada, claro).
Para pasar a String todas los tipos de datos, en el caso de .NET, todas las 'clases' de datos tienen un metodo ToString(). Para realizar conversiones a otro tipo de dato cada clase de dato tiene sus propios metodos Parse() y TryParse():
Dim Var As Integer = Integer.Parse("0123")
Int Var = Int.Parse("0123");
Pero para globalizar el tema, en VB.NET tenemos la funcion CType(<tipo de dato al que queremos convertir>, <expresion a convertir>), en C# si no recuerdo mal es Convert(<tipo de dato al que queremos convertir>, <expresion a convertir>)
Dim Var As Integer = CType(Integer, "0123")
Int Var = Convert(Int, "0123");
Tambien puedes en C# hacer la chapuza de importar la libreria de compatibilidad con VB6 y tirar de las funciones de conversion de VB6: CStr(<expresion>), CInt(<expresion>), etc...
Salu2...
Solo queria indicarte que si quieres ver el contenido de una variable en tiempo de ejecucion lo mejor es que aprendas a poner puntos de ruptura y a depurar las aplicaciones.
Suerte!!
Lo mismo que te ha dicho ZuperVaca, un buen programador tiene que ser un buen debugador, aprender a usar los breakpoints en la linea adecuada es muy util, no solo podras ver el valor de dicha variable, sino tambien las de las demás, incluso podras cambiar el valor y reanudar la ejecución sin necesidad de recompilar.
A veces aparecen errores sólo en la versión "Release" del programa, entonces no se puede usar el debug, el MessageBox viene muy bien en estos casos para ver el valor de alguna variable. A veces también me he encontrado situaciones en las que quería ver el estado de una variable sin que el programa perdiera el foco. Siempre viene bien tener un MessageBox a mano :)
un saludo
Un ficherillo de logs tampoco biene mal...
Yo tambien utilizo ficheros de logs. Me parece lo mas util para rastrear errores en producción. En este entorno no puedes sacar a los usuarios ventanas con mensajes. En entorno web, no te valdría el msgbox si no el alert.
Tengo tambien un fichero de configuración que se puede cambiar "en caliente" donde indico si estoy en modo depuracion o no. Cuando la activo entonces escribo en el log muchisima información.
¡Gracias a todos!
He anotado todas vuestras respuestas.
Gracias a todos de corazón.