Está en la página 1de 10

Qu es C#?

C# o C Sharp es un lenguaje de programacin que est incluido en la


Plataforma .NET y corre en el Lenguaje Comn en Tiempo de Ejecucin
(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#.

Lenguaje Orientado a Objetos

Segn Bjarne Stroustrup autor del lenguaje de programacin C++, para que un
lenguaje sea llamado Orientado a Objetos debe soportar tres conceptos: objetos,
clases y herencia.
Objeto

Un Objeto es una instancia de un tipo de clase.


La instanciacin es el acto de crear una instancia de un objeto, la
instancia es un objeto, la instanciacin usa el operador new,
despus la instanciacin es posible comunicarnos con el objeto a
travs de sus miembros.
Un Objeto es una coleccin de informacin relacionada y
funcional.

Herencia

La Herencia es la habilidad para heredar datos y funcionalidad


de un objeto padre, la herencia es una caracterstica
fundamental de un sistema orientado a objetos.
A travs de la herencia es posible crear o derivar una nueva
clase basada en una clase existente.

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: mtodos, eventos y


propiedades.

Funciones Miembro

Una Funcin Miembro puede ser un constructor, es decir,


una pieza de cdigo que es invocada en una instancia del
objeto.

Campos Estticos

Un Miembro Esttico definine miembros de un objeto que no son


asociados con una instancia de clase especfica.
Un Campo Esttico es el tipo ms simple de un miembro
esttico, para declarar un campo esttico se utiliza el modificador
static.
Un campo esttico puede accederse a travs del nombre de la
clase, en vez de la instancia de la clase (objeto):

Polimorfismo

El polimorfismo es la funcionalidad que permite a cdigo antiguo invocar cdigo


nuevo, tambin permite extender el sistema sin modificar el cdigo existente, esto
se logra sobreescribiendo o redefiniendo el cdigo, para lo cual se utilizan
funciones virtuales y la palabra clave override.
Encapsulacin

Encapsulacin (tambin llamada information hiding), habilidad


de un objeto para ocultar sus datos internos o parte interna de
sus usuarios y provee una interface que hace las partes
importantes del objeto accesible programaticamente.
La encapsulacin provee los lmites entre una interfaz externa y
los detalles de su implementacin interna.
.
Abstraccin

Una Abstraccin se refiere a como un problema dado es


representado en el espacio de programa.
Como desarrollador de clases es necesario pensar en terminos
de hacer el mejor diseo de abstraccin para los clientes de
clase y permitirles enfocarse a la tarea que deben realizar y no
escudriar o indagar en los detalles de como funciona la clase,
tambin es necesario determinar cuales de los miembros de la
clase deberan ser accesibles publicamente.

Plataforma .NET

La Infraestructura .NET se refiere a todas las tecnologas que


constituyen el nuevo ambiente para crear y ejecutar aplicaciones
robustas, escalables y distribuidas. La parte de .NET que permite
desarrollar estas aplicaciones es la plataforma .NET.
La Plataforma .NET consiste de un Lenguaje Comn en Tiempo
de Ejecucin (CLR) y la Biblioteca de Clases de la Plataforma
.NET algunas veces llamada la Biblioteca de Clases Base (CBL).

.NET Common Language Runtime - CLR

es el ncleo de la plataforma .NET ya que es el encargado de gestionar


la ejecucin de cdigo compilado para la plataforma .NET. Puede
asimilarse a la mquina virtual de Java.
Caractersticas del CLR

Integracin de lenguajes a travs del Common Language


Specification
Administracin automatica de memoria, a travs del recolector
de basura.
Manejo de excepciones de lenguajes.
Seguridad type safety.
Soporte de versiones.

Modelo Simplificado para la interaccin de componentes.

.NET Runtime Environment

El Lenguaje Comn en Tiempo de Ejecucin provee los servicios de


ejecucin bsica. Las clases base proveen tipos de datos bsicos,
clases coleccin y otras clases generales. Las clases base son clases
para tratar datos y XML. En la parte superior de la arquitectura las clases
exponen servicios web y tratramiento de la intefaz de usuario. Una
aplicacin puede hacer invocaciones en cualquier nivel y utilizar clases
desde cualquier nivel.
Ambiente/Entorno de Ejecucin

El ambiente o entorno provee un modelo de programacin simple, seguro, soporta


de herramientas potentes y ayuda con la distribucin, empaquetado y soporte:

Ensamblaje

En el runtime .NET el mecanismo de empaquetado es el


ensamble (assembly), cuando el cdigo es compilado por uno
de los compiladores .NET, es convertido a una forma intermedia
conocida como IL.
El ensamble contiene todos los IL, metadatos y otros archivos
requeridos para que un paquete se ejecute en un paquete
completo.

Interoperabilidad de Lenguaje

Una de las metas del runtime .NET es ser un lenguaje agnstico, permitiendo que
el cdigo sea utilizado y escrito desde cualquier lenguaje, no slo las clases
pueden ser escritas en algn lenguaje .NET como VB.NET y ser invocadas desde
otro lenguaje .NET como C#, una clase que fu escrita en VB.NET puede ser
utilizada como una clase base escrita en C# y esa clase podra ser utilizada desde

una clase VC++ o JScript, es decir, no importaria en que clase sea escrita una
clase.
Atributos

El runtime .NET soporta atributos personalizables, los cuales son en


cierto sentido un lugar para colocar informacin descriptiva en los
metadatos junto con un objeto y entonces recuper despus los datos.
Los atributos proveen un mecanismo general para hacer esto y son
utilizados en exceso en todo el tiempo de ejecucin para almacenar
informacin que modifica como el runtime utiliza las clases.
Biblioteca de Clases de la Plataforma .NET

La Biblioteca de Clases de la Plataforma .NET es una coleccin


de tipos reutilizables integradas en el CLR.
Los tipos de la Plataforma .NET permiten llevar a cabo tareas de
programacin comunes como manipulacin de strings,
colecciones de datos, conectividad a bases de datos y acceso a
archivos.
Requerimientos de Software

Todo lo que se necesita para desarrollar en C# es el Kit de desarrollo


(SDK), del cual solo se utilizar el CLR y el compilador de C#.
Tipos de Datos

C# soporta el conjunto de tipos de datos usual, para cada tipo de


dato que C# soporta, existe una correspondencia tipo de
lenguaje comn en tiempo de ejecucin .NET subyacente.
Todos los tipos runtime pueden encontrarse en el namespace
System del lenguaje comn en tiempo de ejecucin .NET.

Constantes y Campos Solo Lectura

En C# los valores pueden ser definidos como constantes y para que un valor sea
constante su valor debe ser algo que pueda ser escrito como una constante.
Value Types

Una variable contiene un valor de cierto tipo, C# forza a


inicializar las variables antes de utilizarlas en una operacin.
Cuando se asigna un valor a un value type el valor actual es
copiado a diferencia de los reference types lo que se copia es la
referencia actual no el valor.

Tipos simples

Los Tipos Simples de C# comparten caractersticas como las de alias con los
tipos de sistema de .NET, expresiones constantes consisten de Tipos Simples
evaluados solamente en tiempo de compilacin no en tiempo de ejecucin y los
Tipos Simples pueden ser inicializados con literales.
Integral

Representa valores enteros y existen nueve tipos integral en C#:


Tipo

Tamao Valor

sbyte

Entero con
8 bit
signo

-128 a 127

byte

Entero sin
8 bit
signo

0 a 255

short

Entero con
16 bit
signo

-32,768 a 32,767

ushor Entero sin


16 bit
t
signo

0 a 65,535

int

Entero con
32 bit
signo

-2,147,483,648 a 2,147,483,647

uint

Entero sin
32 bit
signo

0 a 4,294,967,295

long

Entero con
64 bit
signo

-9,223,372,036,854,775,808 a
-9,223,372,036,854,775,807

ulong

Entero sin
64 bit
signo

0 a 18,446,744,073,709,551,615

Bool

Representa valores booleanos verdadero y falso, por lo que es


posible asignar a una variable un valor booleano o el resultado
de una expresin:
bool bContinuar = (a > b);

En C# el valor verdadero no es posible representarlo con algn


valor diferente de cero, no hay una conversin entre el tipo
integral a bool que force esta conversin.

Char

Representa un caracter Unicode de 16 bit de tamao, por


ejemplo:
char cSexo = 'M';

Tambin es posible asignar un valor hexadecimal utilizando la


secuencia de escape x o un valor Unicode con la secuencia de
escape u:
char cHexadecimal = 'x0068';
char cUnicode = 'u0068';

Floating Point

Representan dos tipos de datos, flotantes (float) y dobles (double):


Tipo

Valor

float

1.5x10-45 a 3.4x1038 con una precisin de 7 dgitos

double 5.0x10-324 a 1.7x10308 con una precisin de 15-16 dgitos


Al realizar operaciones con Floating Point pueden producirse los
siguientes valores:
Cero positivo y negativo
Infinito positivo y negativo

NaN, Not-a-Number

Decimal

Representa un tipo de alta precisin de 128 bit el cual es posible


utilizarlo para calculos financieros y monetarios. Los valores
posibles comprenden los rangos 1.0x10-28 a 7.9x1028 con una
precisin de 28 a 29 dgitos.
No hay conversiones implicitas entre decimales y dobles, se
podra generar un overflow o perder precisin, por lo que es
necesario una conversin explcita con un cast.
Cuando se define una variable y se le asigna un valor se utiliza
el sufijo m para denotar que es un valor decimal:
decimal decDecimal = 1.0m
Si se omite la letra m la

variable podra ser tratada como


por el compilador antes de ser asignado.

double

Constructores y Destructores

Antes de acceder a los mtodos o propiedades de una clase,


primero se ejecuta el constructor de la clase el cual contiene
cdigo de inicializacin, si no se escribe un constructor para la
clase el compilador provee automticamente un constructor
default.
En el runtime .NET el programador no puede controlar la
destruccin de objetos.
Un constructor puede invocar un constructor del tipo base
utilizando la sintaxis base.
Los constructores son invocados invocados automaticamente
slo cuando una instancia de un objeto es creada con new.

Constructor Esttico

Un Constructor Esttico podra ser invocado antes de ser


creada la primer instancia de un objeto, y es til para configurar
el trabajo que necesita hacerse una vez.

En el runtime .NET el usuario no tiene control sobre cuando el


constructor esttico es invocado, ya que el runtime slo
garantiza que algo es invocado despus del inicio del programa
y antes de ser creada la primer instancia de un objeto, lo que
significa que no puede ser determinada la instancia que es
creada en el constructor esttico.

Mtodos

La mayor parte de la funcionalidad es implementada en los mtodos, los mtodos


son parte del Tipo (class), pero los mtodos no son parte de la instancia ( object).
Operadores:

C# proporciona un amplio conjunto de operadores, que son


smbolos que especifican las operaciones que se deben realizar
en una expresin. Operaciones con tipos enteros como ==, !=, <,
>, <=, >=, binary +, binary -, ^, &, | , ~, ++, -- y sizeof() son
generalmente permitidas en enumeraciones. Adems, el usuario
puede sobrecargar muchos de los operadores, es decir, cambiar
su significado al aplicarlos a un tipo definido por el usuario.

Literales

En ocasiones, resulta ms sencillo usar un sistema numrico en


base 16 en lugar de 10, para tal caso C# permite especificar
nmeros enteros en formato hexadecimal, y se define
anteponiendo 0x, por ejemplo: 0xFF, que equivale a 255 en
decimal.
C# tiene caracteres denominados secuencias de escape para
facilitar la escritura con el teclado de smbolos que carecen de
representacin visual.

Matemtico.

Un operador es un smbolo especial que indica al compilador que debe


efectuar una operacin matemtica o lgica.
Lgicos

Los operadores && y || se denominan operadores lgicos condicionales.


Tambin se conocen como operadores lgicos de evaluacin
"cortocircuitada".

Relacin.

Los operadores relacionales comparan valores entre s. Los


operadores de comparacin son =, <>, <, >, <= y >=. Todos los
operadores relacionales dan como resultado un valor Boolean.
Otros
Variables y constantes.

En C#, las variables se declaran con un tipo de datos y una etiqueta


concretos. Si hasta ahora slo ha utilizado lenguajes con tipos definidos de
forma imprecisa como JScript, estar acostumbrado a emplear el mismo
tipo "var" para todas las variables, pero en C# tiene que especificar si la
variable es de tipo int, float, byte, short u otro cualquiera entre ms de 20
tipos de datos diferentes.
Una constante es otro tipo de campo. Contiene un valor que se asigna
cuando se compila el programa y nunca cambia despus. Las constantes
se declaran con la palabra clave const; son tiles para que el cdigo sea
ms legible.
Espacio de nombre de dominio.

El Sistema de nombres de dominio (DNS) se defini originalmente en los


RFC 1034 y 1035. Estos documentos especifican elementos comunes a
todas las implementaciones de software relacionadas con DNS. El Sistema
de nombres de dominio (DNS) se defini originalmente en los RFC 1034 y
1035. Estos documentos especifican elementos comunes a todas las
implementaciones de software relacionadas con DNS,

También podría gustarte