introduccion-al-csharp

Introducción al C#

feb 15, 2010 en Artículos por Victor Parasi

Cuando Microsoft decidió crear la plataforma de trabajo .Net, vió la necesidad de crear un lenguaje que utilice el potencial de lo que estaba creando. Convocó a los creadores de Turbo Pascal y de Delphi para tan importante labor, el resultado lo conocemos ahora y se llama: C#. Amados por unos, acusados de copia por otros, lo importante es que tu mismo saques tus conclusiones y sobre todo aprendas el mayor número de lenguajes para que puedas saber lo que encierra este apasionante mundo de la programación

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Hace unas semanas atrás escribí acerca de .Net Framework, en esa ocasión te indique que el Framework no es un lenguaje sino mas bien un marco de trabajo sobre el cual podías utilizar diversos lenguajes, uno de ellos es C# (c sharp).

C# es mi lenguaje favorito si hablamos de .Net. Si nos remontamos a la historia de este lenguaje te puedo contar que nació de los laboratorios de Microsoft, para ser específicos fue diseñado por Anders Hejlsberg, Scott Wiltamuth y Peter Golde. Entonces describieron el lenguaje como "…simple, moderno, orientado a objetos, de tipado seguro y con una fuerte herencia de C/C++".

Como sus diseñadores lo afirman, C# es un lenguaje orientado a objetos y toma las mejores prácticas de otros lenguajes como C, C++, Java y hasta de Visual Basic, por lo que a mi parecer es un lenguaje que permite crear aplicaciones modernas y sobre todo permite obtener el mayor rendimiento de la Pc dado el manejo del hardware de la máquina que posee.

De seguro te estarás preguntando cómo es este lenguaje, a que se refiere, qué sintaxis tiene, etc. Bueno, como es un lenguaje derivado de C y C++, la sintaxis es muy parecida, por lo que en este post te indicaré los principales conceptos (tipo de datos, definición de variables, constantes, estructuras de control y definición de funciones) para que empieces a descubrir el mundo con C#.

Creando un proyecto consola en C#

Para crear proyectos en C# vamos a usar Visual Studio 2008. Por lo que luego de cargar la aplicación, deberás de crear un Nuevo Proyecto de Visual C# y para este caso un Console Application.

ProyectoC#

Al presionar OK, tenemos acceso al IDE de trabajo con el código inicial que nos da Visual Studio.

El código inicial es el siguiente:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleCSharp
{
	class Program
	{
		static void Main(string[] args)
		{

		}
	}
}

En el código anterior apreciamos varias cosas:

  • using : instrucción usada para hacer referencia a las librerías que vamos a usar en nuestra aplicación. En este caso estamos haciendo referencia a Systema, System.Collections.Generic, System.Linq y System.Text.
  • namespace: nos permite declarar un ámbito de trabajo, de forma tal de ordenar el código que estamos haciendo. En esta ocasión toma el mismo nombre de nuestro proyecto.
  • class: recuerda que líneas arriba mencione que C# es un lenguaje orientado a objetos, por lo que las funciones siempre estarán dentro de una clase.
  • static void Main(string[] args): función principal, de la clase Program y en la cual vamos a codificar. Nota que a diferencia de C o C++, la función aqui se escribe con "M" mayúscula. En el Main se escribirán todas las instrucciones que serán necesarias para ejecutar la aplicación. En este caso escribiremos "Hola Mundo".

Ahora si, reconocido el cuerpo de nuestra aplicación empezaremos a descubrir más de este lenguaje.

Tipos de datos

Recuerda que lo tipos de datos te van a permitir guardar la información de tu aplicación, por lo que contar con tipos de datos que soporte la información que manejas te va a dar como resultado un programa muy sólido. Los tipos de datos que tiene C#, son:

Tipo C# Nombre para la plataforma .NET Valores que soporta
bool System.Boolean true o false (verdadero o falso en inglés)
byte System.Byte 0 hasta 255
sbyte System.SByte -128 hasta 127
short System.Int16 -32.768 hasta 32.767
ushort System.Uint16 0 hasta 65535
int System.Int32 -2.147.483.648 hasta 2.147.483.647
uint System.Uint32 0 hasta 4.394.967.395
long System.Int64 -9.223.372.036.854.775.808 hasta 9.223.372.036.854.775.807
ulong System.Uint64 0 hasta 18446744073709551615
float System.Single Aproximadamente ±1.5E-45 hasta ±3.4E38 con 7 cifras significativas
double System.Double Aproximadamente ±5.0E-324 hasta ±1.7E308 con 7 cifras significativas
decimal System.Decimal Aproximadamente ±1.0E-28 hasta ±7.9E28 con 28 ó 29 cifras significativas
char System.Char Cualquier carácter Unicode (16 bits)

He tratado de colocar los tipos de datos básicos y como se representan estos si utilizas el .Net Framework. Recuerda que en .Net, el namespace System agrupa a las clases y a los tipos de datos principales al momento de programar, es por eso el nombre del tipo de dato.

Variables

A partir de los tipos de datos, podemos definir variables para almacenar nuestra información. Para definir variables, debemos de tomar en cuenta las siguiente consideraciones:

  • Existe diferencia entre mayúscula y minúscula
  • No debe de empezar con un dígito
  • No deben de ser iguales a las palabras reservadas del lenguaje
  • No debe de existir dos variables con el mismo nombre; en general, no debe de existir identificadores con el mismo nombre.

Aquí te doy unos ejemplos de como definir a las variables.

using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleCSharp
{
	class Program
	{
		static void Main(string[] args)
		{
			int valorentero; //Variable Entera
			System.Char uncaracter; //Variable del tipo char.
			int[] unvectordeenteros; //Declarando un vector de enteros
			string[] unvectordecadenas={"casa", "home"}; //Declarando e inicializando un vector
			int[,] unamatriz; //Una matriz de enteros

			valorentero = 10;
			uncaracter = 'A';
			unvectordeenteros = new int[10]; //Asignando memoria a un vector de enteros
			unamatriz=new int[5,5];   // Asignando memeria a una matriz de enteros
		}
	}
}

Aquí te doy algunos ejemplos de como definir a las variables. En el caso de la variable uncaracter, se pudo haber usado el tipo de dato char. En el ejemplo también puedes apreciar como se declaran los vectores y también como se les asignan memoria. Ahora porque no pude un delete, eso lo explicaré luego.

Nota Se observador y fíjate que, al igual que C o C++, C# también lleva ";" luego de cada instrucción.

Constantes

Para nombrar a las constantes las reglas son las mismas que las variables, se les debe de asignar un tipo y un nombre, pero antes del tipo se le coloca la palabra reservada const y se le debe de asignar un valor.

const int constante_entera = 10;

Estructuras Selectivas

Como C# es hija de C, las estructuras selectivas a usar son el if, switch y el operador condicional ?:, por lo que no lo voy a explicar mucho el tema, porque trabajan de la misma forma, pero si voy a poner la sintaxis de las tres estructuras:

Sintaxis – If

// Estructura if
if( condicion1 )
{
	// instrucciones;
}

if( condicion2 )
{
	// instrucciones;
}
else
{
	// instrucciones;
}

Sintaxis – switch

//Estructura switch
switch( expresión )
{
	case constante1:
		// instrucciones;
		break;
	case constante2:
		// instrucciones;
		break;

	...

	default:
		// instrucciones;
}

Sintaxis – Operador ? :

//Operador ? :
variable = condicion ? valor_verdadero : valor_falso;

Estructuras Repetitivas

Si hablamos de estructuras repetitivas, tenemos el do.. while, while y el for, pero adicionalmente tenemos un foreach que nos sirve para recorrer los elementos de una lista o colección. Aquí te va la sintaxis:

Sintaxis – for

// Bucle for
for( inicialización; condición; iteración )
{
	// instrucciones;
}

Sintaxis – While

// Bucle While
while( condición )
{
	// instrucciones;
}

Sintaxis – do..while

// Bucle do..while
do
{
	// instrucciones;
}
while( condición );

Sintaxis – foreach

// Bucle foreach
foreach( tipo in coleccion )
{
	// instrucciones;
}

Operadores

Aquí te daré la lista de los principales operadores de este lenguaje, luego de apreciar la lista podras ver una gran similitud con otro lenguaje. En esta ocasión, cualquier similitud, no es pura coincidencia.

Operador Descripción
++ Operador de incremento, puede usarse como prefijo o sufijo. Es igual al que se tiene en C.
Operador de deicremento, puede usarse como prefijo o sufijo. Es igual al que se tiene en C.
* Multiplicación
/ División
% Módulo
== Igualdad
!= Desigualdad
&& Operador AND
|| Operador OR
= Operador de asignación

Parecido a C o C++?, pues si, para ser sincero son muy pocas las diferencias.

Mi primer programa  – Hola Mundo

Como manda la biblia del buen programador, al ser nuestro primer programa oficial en este nuevo lenguaje, debemos de realizar el "Hola Mundo"

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleCSharp
{
	class Program
	{
		static void Main(string[] args)
		{
			Console.WriteLine("Hola Mundo");
			Console.ReadKey();
		}
	}
}

Con la Clase Console, definida en System, tenemos acceso a imprimir mensajes en pantalla o capturar lo que se ingrese en esta. Para acceder a los métodos de la clase Console, basta con escribir el nombre y luego colocar "." antes del nombre del método.

Usando foreach

Ahora lo que haremos es realizar una aplicación donde veamos como se usa el foreach. La aplicación que voy a hacer, permitirá ingresar valores a un arreglo de enteros y luego los imprimirá en pantalla.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleCSharp
{
	class Program
	{
		static void Main(string[] args)
		{
			int[] elementos; // Definición de  un arreglo
			elementos = new int[10];   // Definición y asignación de memoria a un arreglo
			for (int i=0;i<10;i++)
			{
				Console.Write("Ingrese un valor : ");
				elementos[i] = Int32.Parse(Console.ReadLine() ); //Conversión del dato leído a un entero
			}

			//Imprimimos los elementos del arreglo
			foreach (int e in elementos)
			{
				Console.WriteLine("{0}",e);
			}

			Console.ReadKey();
		}
	}
}

Ahora el mismo ejemplo pero usando cadenas de caracteres en lugar de datos enteros.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleCSharp
{
	class Program
	{
		static void Main(string[] args)
		{
			string [] elementos; //Definición de un arreglo de string (cadena de caracteres)
			elementos = new string[10];
			for (int i=0;i<10;i++)
			{
				Console.Write("Ingrese un nombre : ");
				elementos[i] = Console.ReadLine() ;
			}

			foreach (string  e in elementos) //El foreach es con cada elemento del arreglo.
			{
				Console.WriteLine("{0}",e);
			}

			Console.ReadKey();
		}
	}
}

Definiendo Funciones

Las funciones, al igual que en C, se deben definir antes de ser invocadas. En C#, las funciones deben de estar definidas dentro de una clase, por lo que definiré dos funciones para la clase Program, una que permita ingresar datos a un vector y otra que permita imprimirlo.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleCSharp
{
	class Program
	{
		static void ImprimeVector (int [] vector)
		{
			foreach (int e in vector)
			{
				Console.WriteLine("{0}", e);
			}
		}

		static void IngresarDatos(int[] vector)
		{
			for (int i = 0; i < 10; i++)
			{
				Console.Write("Ingrese un valor : ");
				vector[i] = Int32.Parse(Console.ReadLine());
			}
		}

		static void Main(string[] args)
		{
			int[] elementos;
			elementos = new int[10];
			IngresarDatos(elementos);
			ImprimeVector(elementos);
			Console.ReadKey();
		}
	}
}

Algo que debes estar preguntándote es que significa static. Static es un operador que te indica que para hacer uso de la función definida no es necesario crear una instancia de la clase que la contiene, sólo basta con hacer referencia a la clase y luego a la función. Static es utilizado tanto para variables, funciones, clases, etc. Pero eso lo podemos ver en un futuro post.

Con este post he querido hacer una introducción hacia el lenguaje C# y sobre mostrarte lo fácil que puede resultar aprenderlo si ya sabes C o C++. Aún faltan aprender más conceptos, trabajar con el .Net Framework, por lo que en futuros post te diré algo más de este lenguaje.

Ah! y recuerda C# es hija de C, no es una copia de Java ni mucho menos; es mas si sabes Java, aprende C# y verás el potencial que tiene este lenguaje.


Autor: Victor Parasi

Siempre es difícil escribir sobre uno mismo, qué contar, o por donde empezar, suele ser todo un dilema al momento de presentarse. Aquí vamos. Les diré que soy peruano, Ingeniero por vocación, dedicado a la docencia y siempre en la búsqueda de programar cada vez mejor. Aunque a veces algo terco, sé que no todo en la vida es blanco o negro. Existe el Open Source, y lo respeto pero me llevo mejor con el .Net. Si me hablas de preferencias, te digo que C#, C++, una buena película, colores oscuros, escribir, leer e investigar. Para terminar les diré que amo muchísimo a una mujer espectacular y que es la dueña de mi corazón.


Comentarios (3)

Gaby dice:

hola, estudio ing. informatica y no te imaginas la gran ayuda que me has sido en el manejo de c#, gracias es un magnifico resumen de como usarlo.

Martita Uriarte dice:

Muchas gracias por compartir tan valiosa y precisa información, gracias por su tiempo y vocación de enseñanza.Actualmente estudio Ingenieríade Sistemas y su artículo me ayudó a entender mejor el lenguaje de programación C#.

Victor Parasi dice:

Gracias por tus comentarios. Bienvenido al mundo del C# y que la aventura que empiezas te lleve a muchos programas sin errores.

Deja un comentario

   

copstone en Facebook

Otros artículos

Los archivos bat son pequeños programas de Windows que podemos crear muy rápidamente y son muy útiles para realizar tareas repetitivas y tediosas. Se pueden crear archivos bat para borrar archivos temporales o cookies, copiar carpetas, realizar backups e inclusive para mandar archivos a través de una red. En este artículo voy a mostrar algunos trucos para la creación de archivos bat.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Antes de comenzar a desarrollar aplicaciones web, es necesario que tengas un ambiente de prueba donde puedas experimentar antes de publicar tu contenido en la web. El primer paso para crear el ambiente es instalar un servidor web o http y eso es lo que te mostraré en este artículo.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Si crees que sólo hace falta saber de objetos, clases, etc. para conectarse a una Base de Datos, pues te equivocas, tienes que saber también de Servidor, usuarios, passwords, etc. Te dejo este post para que completes tu información y puedas aprender como conectarte a una Base de Datos

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

C Sharp es un lenguaje orientado a objetos, por lo que era una tarea pendiente indicar como se define un clase, te dejo este post para que aprendas lo sencillo que es.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Aunque no tan visual pero si súper efectivo. En Linux podemos programar aplicaciones que nos saquen de problemas rápidamente. En esta ocasión, veremos cómo podemos hacer uso de Shell scrpits en Linux, aprendiendo la sintaxis de una de estos scripts.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Calendario

febrero 2010
L M X J V S D
« ene   mar »
1234567
891011121314
15161718192021
22232425262728

Categorías

Comparte este artículo

  • Facebook
  • Google Bookmarks
  • Google Gmail
  • Twitter
  • Yahoo Mail
  • Hotmail
  • LinkedIn
  • Share
TIENES ALGO QUE PREGUNTAR? ESCRÍBENOS AQUÍ

Copyright © 2012 - Programando por diversion

Subir