Escrito por George POLIOVEI el Martes 07 de Abril de 2009 a las 09:38hs
Bienvenidos a esta nueva entrega de Aprendiendo .NET
En esta oportunidad vamos a estudiar los siguientes temas
? Palabras reservadas del lenguaje C#
? El M?todo Main() en profundidad
PALABRAS RESERVADAS DEL LENGUAJE
Las aplicaciones que hemos estado estudiando en las entregas anteriores, contienen muchas palabras, de las cuales algunas de ellas son reconocidas por el lenguaje y marcadas como reservadas, y aquellas que no lo son, se les denominan como por ejemplo
Una palabra reservada no la podemos utilizar como
?
?
?
?
?
? ?
Los
Tambi?n los m?todos necesitan ser referenciados por alguna palabra para poder usarlos, por ejemplo hemos estado usando el m?todo de entrada a la aplicaci?n al cual lo hemos denominada Main.
public static void Main()
La l?nea anterior es una declaraci?n de m?todo y contiene tres palabras reservadas del lenguaje (public, static y void) y una que hace de identificador de dicho m?todo (Main)
public class HelloGuruProgrammer
En esta otra vemos una declaraci?n de clase, la cual contiene dos palabras reservadas (public y class) y una que hace de identificador de la clase (HelloGuruProgrammer)
La siguiente lista muestra las palabras que C# mantiene como reservadas, puede que falten algunas pero est?n casi todas:
Esta lista la hice en el note padd ++ para que aprecien como todas ellas toman color, esto significa que todas ellas son reservadas por el lenguaje en el que estamos programando, en nuestro caso C#.
Ok, si queremos usar una de estas palabras como identificador entonces lo que obtendremos ser? un error de compilaci?n.
Veamos un ejemplo :
Esta aplicaci?n nos dar? error durante la compilaci?n, ya que estamos tratando de usar como
Veamos ahora el error de compilaci?n :
Bueno la imagen lo dice todo, observen la cantidad de errores generados por haber usado una palabra reservada como
Una cosa para complementar, no es usual que los programadores utilicen como <identificadores> palabras reservadas, pero si necesitan hacerlo hay un modo que evita el error de compilaci?n, repito solo se debe hacer en los casos que se crean sumamente necesario.
Para que se pueda usar una palabra reservada del lenguaje como identificador simplemente se le debe interponer el s?mbolo @
int @class = 5;
Pero como dije antes nos es una buena pr?ctica
Ve?moslo en la hoja de c?digo
La siguiente imagen muestra el c?digo modificado donde le interpuse el s?mbolo de @ a la palabra reservada class
Como pueden apreciar la palabra se ha des coloreado, esto significa que ya no estamos usando una palabra reservada, aunque en realidad casi
Luego desde la consola lo compilo y haber que sucede
Observen que ya no hubo error de compilaci?n de lo contrario habr?a aparecido donde se?ala la flecha roja, esto significa que el MSIL ha sido creado correctamente.
EL METODO Main()
Si recuerdan, en las entregas anteriores hab?amos dicho que todas nuestras aplicaciones deber?an implementar el m?todo Main(), ya que ?ste registra el punto de entrada a nuestra aplicaci?n, ahora bien, tambi?n dijimos que dicho m?todo deber?a ser est?tico (static) para que solo una copia del m?todo viviese en memoria y p?blico (public) para que pueda ser accedido a ?l desde el exterior de la clase e inclusive de la aplicaci?n.
En esta entrega vamos a ahondar un poco m?s en dicho m?todo ya que considero que, para las siguientes entregas es necesario que se de por entendido y sabido dicho tema
Hasta ahora, hemos estado usando una sola clase como practica para nuestras aplicaciones, pero en realidad a medida que crecen los aplicativos no es una buena pr?ctica mantener todo el c?digo en una sola clase sino en varias, esto ayuda a ordenar y hacer mas entendible nuestro c?digo, tambi?n permite usar el concepto de reutilizaci?n de c?digo.
Para el caso donde nuestro aplicativo posea m?s de una clase, inclusive m?s de un archivo de c?digo fuente es importante recordar que al menos una de las clases que conforman la aplicaci?n, debe implementar el m?todo Main(), no pueden haber mas de una clase que implemente dicho m?todo, SOLO DEBE SER IMPLEMENTADO POR UNA , de lo contrario se producir? un error de compilaci?n.
Veamos un ejemplo
El siguiente aplicativo lo llamar? ejemplo2.cs, y estar? conformado por 2 clases, ambas implementaran el m?todo Main()
Esto producir? un error de compilaci?n ya que nuestra aplicaci?n implementa el m?todo Main(), en ambas clases y como dijimos solamente una de las clases que conforman el aplicativo debe implementarlo, pero veamos el error para que quede mas claro
Como era de esperarse durante el proceso de compilaci?n surgi? el error, y adem?s el noble compilador nos est? indicando cual fue
?Has more than entry point defined:?
Tiene m?s de un punto de entrada definido
Obviamente con eliminar uno de los m?todos definidos se soluciona el problema pero vamos a eliminar ambos m?todos para ver que sucede
Buen día, antes que nada una sincera felicitación, ya que hasta este tema 8 el curso ha estado llevado de una forma muy clara y fácil de entender, solo espero q los que falten por concluir lleven la misma metodoligía, y como mencionaste....se toma un gusto por este lenguaje que se toma la decisión de meterse a aquellos que tengan que ver con .NET. Por útimo me gustaria saber si tienes pensado incorporar uno de ASP.NET y de JAVA que en verdad si pudiera ser el caso me gustaria que fuesen desde cero también; claro con la claridad como estas llevando este, espero no sea mucho pedir ya que estoy interesado en esta parte, hasta pronto y nuevamente una felicitación de mi parte con afecto, att tu amigo Oscar.
Muy apreciado Oscar, gracias por el aliento que nos dejas, sobre ASP.NET seguro que lo daremos desde 0, es lo que tenemos pensado, lo unico que a este paso creo nos llevará mas de 200 entregas, espero poder cumplir, sobre Java, permiteme decirte que si te muestro 2 bloques de código uno en Java y otro en C# seguranmente no destingas a cual pertenece cada uno, ademas ambos trabajan sobre una maquina virtual, pero creo que para que esto quede bien de verdad quizas empecemos a hablar un poco de C y C++ no se, creo que es mas productivo que Java.
Gracias por escribirnos
Cordialidades
George
muchas gracias por escribir esto
de verdad que hace tiempo queria aprender a programar en C# pero ahy muchos que enseñan partiendo de la base que sabes algo de este lenguaje
yo soy programador titulado y no me enseñaron este interesante lenguaje la base de C++ la tengo pero quiero perfeccionarla
fuerza y sientete orgulloso de tu esfuerzo y dedicacion
Hola, primero que nada comentarle que el curso esta muy bueno, y lo estoy siguiendo muy de cerca, yo ya manejo .NET pero el curso que hice me dejo muchas dudas y la verdad nunca habia visto cosas como crear un programa con un block de notas como lo haces tu en .NET, mira no se si es molestia pero estoy diseñando una pagina donde quiero mostrar el resultado de una serie de datos en un label pero me gustaria que me salieran con vuelta de carro, o sea yo recibo 6 datos por ej nombre, apellido, edad y me gustaria mostrarlos en un label pero cada dato en un renglon, he intentado pero no me sale lo hago por ejemplo con lblMensaje.Text = dato1 +
+ dato2 +
.....
por alguna razon no sale como quiero, si sale pero todo en una misma linea, bueno perdon por el pedido un abrazo, espero me puedan ayudar
Hola, mira se que ya hablastes del tema pero en un comentario de una nota anterior, la pregunta es podrias explicar como los haces con el curso pero referente a los sistemas numericos ? necesito para la clase de programacion realizar conversiones a binario y hexadecimal y todo eso, bueno espero me puedan ayudar
besos
Hola que tal? Recién hoy pude engancharme con el curso. Estuve leyendo y se me ocurrio, ya que en estecapítulo hablaste de algunos errores específicos del main. Si podas explicarme o ampliarme este error que me sale cuando intento compilar el código de la parte anterior.
Nombredelaclase.cs: error CS0116: Un espacio de nombres no contiene directamente miembros como campos o métodos.
Muchas gracias y felicitaciones, hasta ahora todo genial, salvo ese pequeñito error.
Hola! veo que no han comentado desde Junio :D ...
Nuevamente mis felicitaciones a quienes están realizando tan majestuosa labor de dar conceptos de manera clara y sencilla.. estoy esperando ansioso la edición 9 de este curso.. así que adelante y no se demoren. :D
Un abrazo.
Que tal buenos amigos, en primer lugar mil disculpas por no haber posteado nada mas, el tema pasa porque nos hemos embarcado en un proyecto realmente grande que nos ocupa mucho tiempo, pero esparamos seguir discutiendo pronto, muchas gracias por los comentarios y al admin del sitio que mantiene nuestro post, en la edicion 9 veremos esos problemas que han comentado y seguro ya han resuelto, a su vez les comento que se nos ha unido un amigo muy especial que esta deseoso de postear sus conocimientos
Muchas cordialidades
GRP
Hola george, por favor no dejes de escribir estos articulos tan interesantes, ya hace tiempo que no lo haces.
Saludos