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 modificadorinternal
. - 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.
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 :
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
No hay comentarios:
Publicar un comentario