ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Lenguaje C

lude5 de Diciembre de 2011

9.007 Palabras (37 Páginas)525 Visitas

Página 1 de 37

¿Qué es C#?

C# o C Sharp es un lenguaje de programación que está incluido en la Plataforma .NET y corre en el Lenguaje Común en Tiempo de Ejecución (CLR, Common Language Runtime). El primer lenguaje en importancia para el CLR es C#, mucho de lo que soporta la Plataforma .NET está escrito en C#.

C# intenta ser el lenguaje base para escribir aplicaciones .NET

C# deriva de C y C++, es moderno, simple y enteramente orientado a objetos, simplifica y moderniza a C++ en las áreas de clases, namespaces, sobrecarga de métodos y manejo de excepciones. Se elimino la complejidad de C++ para hacerlo más fácil de utilizar y menos propenso a errores.

Algunas características de C# son:

 C# provee el beneficio de un ambiente elegante y unificado.

 No soporta herencia múltiple, solamente el runtime .NET permite la herencia múltiple en la forma de interfaces, las cuales no pueden contener implementación.

 No maneja apuntadores, para emular la función de los apuntadores se utiliza delegates el cual provee las bases para el .NET event model.

 Por default trabaja con código administrado.

 La Plataforma .NET provee un colector de basura que es responsable de administrar la memoria en los programas C#.

 El manejo de errores está basado en excepciones.

 Soporta los conceptos como encapsulación, herencia y polimorfismo de la programación orientada a objetos.

 El Modelo completo de clases está construido en la cima del .NET Virtual Object System (VOS). El modelo de objetos es parte de la infraestructura y ya no forma parte del lenguaje de progrmación.

 No existen funciones globales, variables o constantes. Todo deber ser encapsulado dentro de la clase, como un miembro de la instancia (accesible via una instancia de clase) o un miembro estático (via el tipo).

 Los métodos que se definen en las clases son por default no virtuales (no pueden ser sobre escritos al derivar clases)

 Soporta los modificadores de acceso private, protected, public y agrega un cuarto modificador internal.

 Solamente se permite una base clase, si se requiere herencia múltiple es posible implementar intefaces.

 No es posible utilizar variables no inicializadas.

 No es posible hacer el cast de un entero a un tipo de referencia (objeto).

 Los parámetros que son pasados son type-safe.

 El soporte de versiones lo provee el CLR.

 Permite acceder a diferentes APIs a través de .NET Common Language Specification, el cual define el estádar de interoperabilidad entre lenguajes que se adhieran a este estándar.

 La Plataforma .NET provee un acceso transparente a COM.

 Soporta OLE

 Permite la interoperabilidad con APIs al estilo C y DLLs, esta característica para acceder a APIs nativas es llamada Platform Invocation Services (PInvoke)

 Por default el código es safe mode, pero es posible declarar clases o sólo métodos unsafe, esta declaración permite utilizar apuntadores, estructuras y almacenamiento de arreglos estáticos.

 C# depende del runtime que provee la Plataforma .NET, el runtime administra la ejecución de código.

Lenguaje Orientado a Objetos

Según Bjarne Stroustrup autor del lenguaje de programación C++, para que un lenguaje sea llamado Orientado a Objetos debe soportar tres conceptos: objetos, clases y herencia.

Aunque los lenguajes orientados a objetos se construyen sobre los conceptos de :

 Encapsulación

 Herencia

 Polimorfismo

Objeto

Un Objeto es una instancia de un tipo de clase.

La instanciación es el acto de crear una instancia de un objeto, la instancia es un objeto, la instanciación usa el operador new, después la instanciación es posible comunicarnos con el objeto a través de sus miembros.

Un Objeto es una colección de información relacionada y funcional.

Un objeto se compone de:

 Datos que describen el objeto y

 Operaciones que pueden ser realizadas por el objeto

Herencia

La Herencia es la habilidad para heredar datos y funcionalidad de un objeto padre, la herencia es una característica fundamental de un sistema orientado a objetos.

A través de la herencia es posible crear o derivar una nueva clase basada en una clase existente.

Una clase derivada es la nueva clase que esta siendo creada y la clase base es una de las cuales la nueva clase es derivada. La nueva clase derivada hereda todos los miembros de la clase base por consiguiente permite reusar el trabajo previo.

En C# se puede asumir que la clase derivada podría heredar todos los miembros de la clase base.

La herencia es un ejemplo del diseño orientado a objetos conocido como una relación "is-a" (es-un), por ejemplo:

"un empleado es una persona".

Al utilizar la herencia la clase base necesita ser diseñada teniendo en mente la herencia, si los objetos no tienen la estructura apropiada la herencia no podría funcionar correctamente.

Una clase derivada no debería requerir más ni prometer menos que su clase base sobre cualquiera de sus interfaces heredadas.

Una interfaz de clase es un contrato entre esta y los programadores que usan la clase.

upcasting, cuando un programador tiene una referencia a la clase derivada, el programador siempre puede tratar a esa clase como si fuera la clase base.

En el lenguaje común en tiempo de ejecución .NET todos los objetos heredan de la última clase base llamada object y existe sólo una herencia simple de objetos.

Un objeto puede derivar sólo de una clase base.

Clase

Una Clase es una plantilla para un objeto.

Una Clase define las operaciones que un objeto puede realizar y define un valor que mantiene el estado del objeto, los componentes principales de una clase son: métodos, eventos y propiedades.

Una instancia de una clase es un objeto, se accede a la funcionalidad de un objeto invocando sus métodos y accediendo a sus propiedades, eventos y campos.

Una clase utiliza modificadores para especificar la accesibilidad de la clase y sus componentes, los componentes de una clase son llamados miembros por lo que existen diferentes tipos de miembros. Una referencia se refiere a una instancia, una instancia es la creación de un objeto del tipo clase que se está declarando. Una clase utiliza ninguno, uno o más constructores para ayudar a definir la instancia de una clase. Existe una palabra reservada llamada thisque sirve para hacer referencia a la clase actual en el ámbito en el cual es utilizada. Cuando se hace referencia a una variable de instancia que tiene el mismo nombre de un parámetro se debe utilizar this.name.

Al crear y manipular objetos no es necesario administrar la memoria que estos ocupan ya que existe un mecanismo que se encarga de esto llamado garbage collector (recolector de basura), pero es una buena práctica no olvidar liberar los recursos.

Funciones Miembro

Una Función Miembro puede ser un constructor, es decir, una pieza de código que es invocada en una instancia del objeto.

Campos Estáticos

Un Miembro Estático definine miembros de un objeto que no son asociados con una instancia de clase específica.

Un Campo Estático es el tipo más simple de un miembro estático, para declarar un campo estático se utiliza el modificador static.

Un campo estático puede accederse a través del nombre de la clase, en vez de la instancia de la clase (objeto):

using System;

class MiContador{

//Campo Estático

public static int iContador = 0;

public MiContador(){

iContador++;

}

}

class App{

public static void Main(){

MiContador ContadorA = new MiContador();

Console.WriteLine(MiContador.iContador);

MiContador ContadorB = new MiContador();

Console.WriteLine(MiContador.iContador);

}

}

El ejemplo determina cuantas instancias del objeto han sido creadas.

Clase Base

Una Clase base es un objeto padre de donde se basa un nuevo trabajo.

Clase Derivada

Una Clase derivada es un objeto hijo.

Clase Abstracta

Una Clase Abstracta define las funciones que una clase derivada debe implementar.

Una Clase Abstracta define un contrato en donde las clases derivadas deben definir las funciones que la clase padre marca utilizando la palabra reservada abstract, además que la clase padre también se define como abstract.

using System;

abstract public class Persona{//Indica que la clase es abstracta

//Propiedades

public string sNombre;

public int iEdad;

//Constructor

public Persona(string sNombre, int iEdad){

this.sNombre = sNombre;

this.iEdad = iEdad;

}

//Métodos

abstract public string Tipo();//Método que la clase derivada debe implementar

}

//Herencia Simple

public class Empleado : Persona{

public Empleado(string sNombre, int iEdad):base(sNombre, iEdad){}

override public string Tipo(){

return "Empleado";

}

}

class App{

//Aplicación

public static void Main(){

Console.WriteLine("--- Arreglo de Objetos ---");

Empleado[] aProgramadores = new Empleado[2];

aProgramadores[0] = new Empleado("Bill Gates", 50);

...

Descargar como (para miembros actualizados) txt (64 Kb)
Leer 36 páginas más »
Disponible sólo en Clubensayos.com