Vous êtes sur la page 1sur 6

UNIANDES

NOMBRE: CARLOS CIFUENTES ESPECIALIDAD: 2 SISTEMAS


Estructura de un Programa en C# - Un programa en C# es una coleccin de Clases, Estructuras y Tipos - Dichos elementos pueden residir en uno o varios archivos - Todo es un objeto - C# diferencia Mayusculas y Minusculas - Utiliza los espacios de nombre para organizar las clases Mtodo Principal Main - Es el punto de inicio de la aplicacion - Puede devolver void static void Main() - Puede devolver int static int Main() - Puede tomar argumentos static int Main(string[] args) En C# todas las aplicaciones deben tener un punto de inicio, que es el mtodo Main, en Main es donde se crean los objetos y se ejecutan otros mtodos, es un mtodo esttico que reside dentro de una clase o estructura y solo puede haber un Main por aplicacin. El mtodo Main puede o no recibir argumentos, dichos argumentos los recibe en forma de un array de strings unidimensional y contiene los argumentos que el programa recibe al ser invocado en la linea de comandos. En resmen un programa en C# se ve ms o menos as. using System; namespace Day1 { /// /// Introducction to C# programming - Day 1 /// class Example { [STAThread] static void Main(string[] args) { Console.WriteLine("Hola Mundo"); } } } Tipos Predefinidos En C# existen 2 tipos predefinidos: - Tipos por Valor: - Contienen una copia de los Datos que utilizan - Las operaciones que uno realiza con su copia no afectan las copias de los demas - Tipos por Referencia: - Contienen referencias a los Datos que utilizan - Dos o mas referencias pueden apuntar al mismo objeto

- Las operaciones que uno realiza afectan a los demas Todos los tipos se definen en el espacio de nombre System, todos los tipos se derivan de System.Object y los que son por valor derivan de Syste.ValueType. Common Type System WriteLine es un mtodo de la clase Console que escribe un texto en la salida estndar. Dicho texto se especifica entre comillas (comillas dobles). Bien!, ahora podremos compilar nuestro programa ingresando en el men Build, opcin Build Solution. Tipos Estructura Un tipo struct puede declarar constructores, constantes, campos, mtodos, propiedades, ndices, operadores y tipos anidados. Las estructuras actuan de manera similar a una clase y con mayores restricciones, por ejemplo no pueden heredar de cualquier otro tipo, ni tampoco otra clase puede heredar de una estructura. Las estructuras deberan ser utilizadas slo para tipos que son realmente una pieza de datos. La diferencia entre struct y class en C# es que struct es un value type y class es una reference type. La principal idea de utilizar struct es para crear objetos ligeros como Point, FileInfo, etc., de esta manera se conserva memoria porque no hay referencias adicionales que son creadas como se necesiten por objetos clase. using System; struct IP{ public byte b1,b2,b3,b4; } class ip{ public static void Main(){ IP miIP; miIP.b1 = 192; miIP.b2 = 168; miIP.b3 = 1; miIP.b4 = 101; Console.Write("{0}.{1}.", miIP.b1,miIP.b2); Console.Write("{0}.{1}", miIP.b3,miIP.b4); } } Tipos Enumeracin Es posible establecer un conjunto de constantes relacionadas, por default los elementos de una enumeracin son de tipo int donde el primer elemento tiene el valor 0 y cada elemento subsecuente se incrementa en 1. Es posible establecer el valor del primer elemento simplemente asignando a este el valor deseado, as como es posible especificar el tipo de dato de los valores contenidos especificandolo despus del nombre de la enumeracin aunque estn restringidos a los tipos: long, int, short y byte. Sintaxis: enum NombreEnumeraciones{ constante1, constante2, constante3, . . constanteN }

Ejemplo: using System; public class Enumeracion { enum enumDias {Sabado, Domingo, Lunes, Martes, Mircoles, Jueves, Viernes }; enum enumMeses {Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,_ Octubre,Noviembre,Diciembre}; enum enumFecha {Dia = 21, Mes = 9, Ao = 1971}; public static void Main() { Type eDias = typeof(enumDias); Type eMeses = typeof(enumMeses); Type eFecha = typeof(enumMeses); Console.WriteLine("Los das de la semana, y su valor correspondiente en la enumeracin es:"); foreach ( string s in Enum.GetNames(eDias) ) Console.WriteLine( "{0,-11}= {1}", s, Enum.Format( eDias, Enum.Parse(eDias, s), "d")); Console.WriteLine(); Console.WriteLine("Los meses del ao, y su valor correspondiente en la enumeracin es:"); foreach ( string s in Enum.GetNames(eMeses) ) Console.WriteLine( "{0,-11}= {1}", s, Enum.Format(eMeses, Enum.Parse(eMeses, s), "d")); } } Tipos Base Los Tipos Base para las enumeraciones se especifican listando el tipo base despus del nombre de la enumeracin: enum eDias : int{ Lunes, Martes, Mircoles, Jueves, Viernes }; Los tipos base vlidos para las enumeraciones son: byte, sbyte, short, ushort, int, uint, long y ulong. Si el tipo base no es especificado, el tipo base por default es int. Tipos Referencia Es contraste a value types los reference types no almacenan el dato actual que representan, porque almacenan una referencia al dato actual. Los reference types que C# utiliza son: El Tipo Objeto es la Clase Base de todos los tipos, al ser la clase base de todos los tipos es posible asignarle valores de cualquier tipo. El Tipo Objeto es utilizado cuando el value type esta boxed, es decir, que est disponible como un objeto.

Tipo Clase El Tipo Clase contiene datos miembro, funciones miembro y tipos anidados. Los datos miembro son constantes, campos y eventos. Las funciones miembro incluyen mtodos, propiedades, ndices, operadores, constructores y destructores. Interfaces Una interface declara un tipo referencia que tiene slo miembros abstractos. Slo existe la firma pero no tiene implementado todo el cdigo, por lo que no es posible instanciar una interface, slo un objeto que deriva de la interface. Para crear una interface se emplea la palabra reservada interface: using System; interface Iuno{ void AccionUno(); } class Implementa : Iuno{ public void AccionUno(){ Console.WriteLine("Accin uno..."); } } class App{ public static void Main(){ Implementa I = new Implementa(); I.AccionUno(); } } Es posible definir mtodos, propiedades e ndices en una interface, cuando se define una Clase es posible derivar de mltiples interfaces, mientras que al definir una interface slo es posible derivar de slo una clase. Las interfaces estn estrechamente relacionadas a clases abstractas, se parecen a una clase abstracta que tiene todos sus miembros abstractos. Cuando un objeto implementa una interface, una referencia a la interface puede ser obtenida por un cast de la interface. Una clase puede implementar ms de una interface. class NombreClase : InterfaceA, InterfaceB{} Existe una tcnica llamada Implementacin de la Interface Explcita y se utiliza para resolver colisiones con nombres de mtodos iguales entre interfaces: using System; interface Iuno{ void AccionUno(); } interface Idos{ void AccionUno(); } class Implementa : Iuno, Idos{ void Iuno.AccionUno(){ Console.WriteLine("Colisin resuelta con el nombre del mtodo Iuno"); } void Idos.AccionUno(){ Console.WriteLine("Colisin resuelta con el nombre del mtodo Idos"); }

} class App{ public static void Main(){ Implementa I = new Implementa(); Iuno uno = (Iuno) I; uno.AccionUno(); Idos dos = (Idos) I; dos.AccionUno(); } } Es posible ocultar al usuario de la clase la implementacin de una interfaz, as como tambin es posible crear interfaces basadas de otras interfaces. Delegados Los delegados son similares a las interfaces, especifican un contratado entre un caller y un implementer(implementador). Un delegado especifica la forma de una funcin en vez de especificar toda una interface. Las interfaces se crean en tiempo de compilacin y los delegados son creados en tiempo de ejecucin. Un delegado encapsula un mtodo con cierta firma, bsicamente un delegado es un typesafe y secure version. Un delegado es una implementacin de function pointers orientada a objetos y son utilizados en muchas situaciones donde un componente necesita volver a invocar el componente que lo esta usando. Es posible encapsular mtodos estticos e instancias en una instancia delegado. El principal uso de los delegados es con los eventos no con las clases. La especificacin del delegado determina la forma de la funcin y crea una instancia del delegado, se usa la funcin que coincide con la forma. Los delegados al ser de naturaleza dinmica se utilizan cuando el usuario desea cambiar el comportamiento, por ejemplo si deseamos que una clase Ordenamiento soporte diferentes mtodos de ordenacin, la ordenacin podra ser controlada en base a un delegado que defina la funcin de comparacin. Nota los delegados siempre son creados an si no son usados, pero los delegados podran ser creados al vuelo si se reemplazan las funciones estticas por propiedades, entonces unicamente se crea el delegado solo si se utiliza la propiedad. Tipo string El Tipo string se utiliza para manipular datos string. La clase string deriva directamente de object y no es posible derivarla. Todos los strings en C# son instancias del tipo System.String en el CLR. string es un alias para la clase predefinida System.String y su uso es muy sencillo: string sWebSite = "http://www.informatique.com.mx"; Para acceder a un caracter, simplemente acceda a su ndice: sWebSite[11]; Es posible hacer un barrido de los caracteres que componen el string utilizando la propiedad Length que poseen los arreglos y porque es posible acceder a estos tratando al string como un arreglo: using System; class App{ public static void Main(){ string sWebSite = "http://www.informatique.com.mx"; Console.WriteLine("sWebSite contiene : " + sWebSite.Length + " caracteres"); for(int iElemento = 0; iElemento < sWebSite.Length; iElemento++){

Console.WriteLine("Elemento " + iElemento + " : " + sWebSite[iElemento]); } } } Es posible concatenar strings utilizando el operador +. Si requiere comparar strings por igualdad utilice el operador de comparacin == Aunque string es un reference type la comparacin se realiza comparando los valores no las referencias. La clase String es un ejemplo de tipo inmutable, es decir, que los caracteres contenidos en el string no puede ser modificados por los usuarios del string, todas las operaciones que son realizadas por la clase String regresan una versin modificada del string en vez de modificar la instancia en la cual se invoco el mtodo.

Vous aimerez peut-être aussi