guia de lenguaje ii conceptos

10
¿Qué es C#? C# o C Sharp es un lenguaje de programación que está incluido en la Plataforma .!" corre en el $enguaje Com%n en "iempo de !jecución &C$'( Common $anguage 'untime). !l primer lenguaje en importancia para el C$' es C#( mucho de lo que soporta la Plataforma .!" está escrito en C#. $enguaje *rientado a *+jetos Seg%n Bjarne Stroustrup autor del lenguaje de programación C,,( para que un lenguaje sea llamado *rientado a *+jetos de+e soportar tres conceptos- objetos ( clases herencia . *+jeto n Objeto es una instancia de un tipo de clase. $a instanciación es el acto de crear una instancia de un o+jet instancia es un o+jeto( la instanciación usa el operador ne/ ( después la instanciación es posi+le comunicarnos con el o+jeto tra0és de sus miem+ros. n Objeto es una colección de información relacionada funcional. 1erencia $a Herencia es la ha+ilidad para heredar datos funcionalidad de un o+jeto padre( la herencia es una caracter2stica fundamental de un sistema orientado a o+jetos. 3 tra0és de la herencia es posi+le crear o deri0ar una nue0a clase +asada en una clase e4istente. Clase na Clase es una plantilla para un o+jeto. na Clase define las operaciones que un o+jeto puede reali5ar define un 0alor que mantiene el estado del o+jeto( los

Upload: edwar-gonzalez

Post on 04-Nov-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

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 ObjetosSegn 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.ObjetoUn 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.

HerenciaLa 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.

ClaseUna 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 MiembroUna Funcin Miembro puede ser un constructor, es decir, una pieza de cdigo que es invocada en una instancia del objeto.

Campos EstticosUn 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..AbstraccinUna 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 .NETLa 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 - CLRes 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 CLRIntegracin de lenguajes a travs del Common Language SpecificationAdministracin 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 EnvironmentEl 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 EjecucinEl ambiente o entorno provee un modelo de programacin simple, seguro, soporta de herramientas potentes y ayuda con la distribucin, empaquetado y soporte:

EnsamblajeEn 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.AtributosEl 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 .NETLa 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 SoftwareTodo 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 DatosC# 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 LecturaEn 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 TypesUna 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 simplesLos 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.IntegralRepresenta valores enteros y existen nueve tipos integral en C#:TipoTamaoValor

sbyteEntero con signo8 bit-128 a 127

byteEntero sin signo8 bit0 a 255

shortEntero con signo16 bit-32,768 a 32,767

ushortEntero sin signo16 bit0 a 65,535

intEntero con signo32 bit-2,147,483,648 a 2,147,483,647

uintEntero sin signo32 bit0 a 4,294,967,295

longEntero con signo64 bit-9,223,372,036,854,775,808 a -9,223,372,036,854,775,807

ulongEntero sin signo64 bit0 a 18,446,744,073,709,551,615

BoolRepresenta 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.

CharRepresenta 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 PointRepresentan dos tipos de datos, flotantes (float) y dobles (double):TipoValor

float1.5x10-45 a 3.4x1038 con una precisin de 7 dgitos

double5.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 negativoInfinito positivo y negativoNaN, Not-a-Number

DecimalRepresenta 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.0mSi se omite la letra m la variable podra ser tratada como double por el compilador antes de ser asignado.

Constructores y DestructoresAntes 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 EstticoUn 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.

MtodosLa 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.

LiteralesEn 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.LgicosLos 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 =, , , =. Todos los operadores relacionales dan como resultado un valor Boolean.OtrosVariables 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,