La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sintaxis de C# (Declaraciones y Tipos)

Presentaciones similares


Presentación del tema: "Sintaxis de C# (Declaraciones y Tipos)"— Transcripción de la presentación:

1

2 Sintaxis de C# (Declaraciones y Tipos)

3 Contenido CTS (Common Type System) Tipos en C# Lenguaje C#
Características del Lenguaje Declaraciones

4 CTS (Common Type System)
Define un conjunto común de “tipos” de datos orientados a objetos Todo lenguaje de programación .NET debe implementar los tipos definidos por el CTS Todo tipo hereda directa o indirectamente del tipo System.Object Define Tipos de VALOR y de REFERENCIA El Common Type System (CTS) o Sistema de Tipo Común es el conjunto de reglas que han de seguir las definiciones de tipos de datos para que el CLR las acepte. Es decir, aunque cada lenguaje gestionado disponga de su propia sintaxis para definir tipos de datos, en el MSIL resultante de la compilación de sus códigos fuente tienen que cumplir las reglas del CTS. El sistema común de tipos, conocido como CTS, provee una definición común de los tipos de datos básicos que utiliza el CLR. El CTS posibilita, entre otras cosas, que todos los lenguajes de alto nivel que compilan contra una plataforma CLI compartan el mismo sistema de tipos de datos, permitiendo lograr una mejor interoperabilidad. El CTS define como se declaran, usan y manejan en tiempos de ejecución los tipos de datos orientados a objetos que formarán el núcleo de cualquier aplicación manejada. Para más información acerca de CTS puede consultarse el siguiente sitio web: CTS define cómo se declaran, utilizan y administran los tipos en el motor en tiempo de ejecución. Es también una parte importante de la compatibilidad en tiempo de ejecución con la integración entre lenguajes. El sistema de tipos común realiza las funciones siguientes: Establece un marco de trabajo que ayuda a permitir la integración entre lenguajes, la seguridad de tipos y la ejecución de código con alto rendimiento. Proporciona un modelo orientado a objetos que admite la implementación completa de muchos lenguajes de programación. Define reglas que deben seguir los lenguajes, lo que ayuda a garantizar que los objetos escritos en distintos lenguajes puedan interactuar unos con otros.

5 CTS: Características Cada tipo puede tener cero o mas miembros (campo, método, propiedad, evento). No puede existir la herencia Múltiple. Todo Tipo hereda directa o indirectamente del tipo System.Object Los objetos que lanzan un tipo de excepción deben heredar (directa o indirectamente) de System.Exception Los tipos declarados en 2 ensamblados distintos, son distintos, aunque tengan el mismo nombre. Algunos ejemplos de estas reglas son: Cada tipo de dato puede constar de cero o más miembros. Cada uno de estos miembros puede ser un campo, un método, una propiedad o un evento. No puede existir herencia múltiple, y todo tipo de dato ha de heredar directa o indirectamente de System.Object. Los modificadores de acceso admitidos son: || Modificador || Código desde el que es accesible el miembro || || public || Cualquier código || || private || Código del mismo tipo de dato || || family || Código del mismo tipo de dato o de hijos de éste. || || assembly || Código del mismo ensamblado || || family and assembly || Código del mismo tipo o de hijos de éste ubicado en el mismo ensamblado || || family or assembly || Código del mismo tipo o de hijos de éste, o código ubicado en el mismo ensamblado

6 Interoperabilidad

7 Los Tipos de Datos El CLR administra dos segmentos de memoria: Stack (Pila) y Heap (Montón) El Stack es liberado automáticamente y el Heap es administrado por el GC (Garbage Collector) Los tipos VALOR se almacenan en el Stack Los tipos REFERENCIA se almacenan en el Heap El CLR administra dos segmentos de memoria, los cuales son utilizados de distinta forma a lo largo del ciclo de vida de una aplicación: El Stack, o Pila: es una sección de memoria que almacena los “tipos de valor” (Value Types), llamados asi porque tanto su referencia como su valor se encuentran en la misma posición de memoria. Ejemplos de tipos por valor en el CLR son los caracteres, los números enteros y los booleanos. A estos tipos de dato también se los conoce como “tipos primitivos”. El stack se comporta como una lista LIFO (Last In – First Out), donde se van apilando valores uno encima de otro y sólo se puede recuperar un valor desapilando los que tiene por encima. La memoria ocupada por los Value Types es liberada automáticamente por el CLR una vez que se finaliza el procedimiento o el bloque de código donde fueron declarados. El Heap, o “Montón”: es unas sección de memoria que almacena los “tipos de referencia” (Reference Types), llamados asi porque su almacenamiento se encuentra dividido En el stack se almacena una referencia al contenido de la variable En el heap se guarda el valor propiamente dicho de la variable Ejemplos de tipos por referencia son los Strings (cadenas de caracteres) y cualquier tipo de dato definido por el usuario (por ejemplo clases e interfaces que se creen a lo largo del desarrollo de una aplicación). La memoria ocupada por los Reference Types es liberada automáticamente por el Garbage Collector del CLR, de manera no determinística (esto quiere decir que no se puede tener conocimiento acerca de en qué momento se liberará la memoria). El CLR no puede ser invocado por los desarrolladores, y nunca debe hacerse ninguna presuposición acerca de cuándo y cómo se ejecutará.

8 Tipos de Datos por Valor
Categoría Clase Descripción C# Alias Enteros Byte Un entero sin signo (8-bit) byte     SByte Un entero con signo (8-bit) sbyte Int16 Un entero con signo (16-bit) short Int32 Un entero con signo (32-bit) int Int64 Un entero con signo (64-bit) long Punto Flotante Single Un número de punto flotante de simple precisión (32-bit) float Double Un número de punto flotante de doble precisión (64-bit) double Decimal Un número decimal de 96-bit decimal Lógicos Boolean Un valor booleano (true o false) bool Otros Char Un caracter Unicode (16-bit) char Object La raíz de la jerarquía de objetos object String Una cadena de caracteres unicode inmutable y de tamaño fijo string

9 Conversión de tipos por Valor y Referencia
Para poder convertir tipos por valor a referencia y viceversa se utiliza una técnica conocida como: BOXING: Convierte un tipo por valor a uno por referencia. UNBOXING: Convierte un tipo por referencia a un tipo por valor. Tipo por Valor Boxing Tipo por Referencia Unboxing

10 Tipos Valor y Ref

11 C# Lenguaje Creado específicamente para la plataforma .NET
Estándar ECMA (Ecma-334). Orientado a Objetos y Componentes. Soporta todas las características de la POO: Abstracción Encapsulación. Herencia. Polimorfismo. Sintaxis derivada de C, C++, Delphi y Java.

12 Sintaxis C# Terminación de Línea, es con un “;” int a = 1 + b;
Podemos tener una sentencia, que se ejecute en una o varias líneas, siempre y cuando la terminación sea un punto y coma (;)

13 Sintaxis C# Declaración en Bloques en llaves “{}”: class Programa{
public static void Main(string[] args) { Console.WriteLine(“Hola Mundo!"); } En C#, los bloques son declarados entre llaves “{ }”

14 Sintaxis C# Comentarios en el código:
string nombre = “Juan”; // Comentario de una sola línea /* Comentario con mas de una línea*/ /// <summary> /// Documentación XML que puede ser consumida por otras /// herramientas para mostrar ayuda dinámica o generar /// documentación en varios formatos /// </summary> public class Matematica { /// Calcula la suma de dos números enteros /// <param name="x">El primer operando de la suma</param> /// <param name="y">El segundo operando de la suma</param> /// <returns> La suma entera de ambos operandos</returns> public int Sumar (int x, int y) {return x + y;} } C# soporta 3 tipos de comentarios en nuestro código fuente: //Para comentarios de una sola línea /* Para comentarios De una o varias líneas */ ///<summary> ///Comentarios que forman parte de la documentación de nuestros Tipos en el ensamblado ///</summary>

15 Sintaxis C# C# es un lenguaje “case-sensitive”
system.console.writeline(“HOLA”); //INCORRECTO System.Console.WriteLine(“HOLA”); //CORRECTO int a; //INCORRECTO A = 1; //INCORRECTO int a; //CORRECTO A = 1; //CORRECTO El lenguaje C# es un lenguaje sensible a las Mayúsculas y Minúsculas. Esto quiere decir que un miembro “a”, es distinto a un miembro “A”

16 Sintaxis C# Declaración de variables int i; decimal d; rectangle r;
Persona per; En C#, para declarar variables debemos poner primero el tipo de dato que vamos a declarar y posteriormente el nombre (identificador).

17 Sintaxis C# Inicialización de variables int i; //INCORRECTO
System.Console.WriteLine(i); //INCORRECTO int i=0; //CORRECTO System.Console.WriteLine(i); //CORRECTO En C#, debemos inicializar las variables EXPLICITAMENTE ANTES DE SER UTILIZADAS.

18 Sintaxis C# Conversión de Tipos
Cuenta cta = new CtaCte(); CtaCte cc = cta; //Error: puede que cta no sea una CtaCte CtaCte cc = (CtaCte)cta; //Conversion explicita “CASTING” CtaCte cc = cta as CtaCte; //Usando el operador “as” if (cta is CtaCte) ... //Comparación con el operador “is” C# no permite conversiones implícitas de tipos Si falla el cast se devuelve null o InvalidCastException

19 Sintaxis C#

20 Recursos CLS: Overview Tipos de la BCL: Estándar para C# y CLI
Overview Tipos de la BCL: Estándar para C# y CLI Referencia C#:

21 Gracias por su Atención…
Preguntas??


Descargar ppt "Sintaxis de C# (Declaraciones y Tipos)"

Presentaciones similares


Anuncios Google