Descargar

Introducción a la Plataforma Microsoft .NET (página 3)

Enviado por Pablo Turmero


Partes: 1, 2, 3
edu.red Estructuras Grupos de código y datos Similar a las clases, sin embargo: No se permite la herencia Siempre se almacenan por valor Desarrolladores de C++ Estructuras no son una clase con todos sus miembros públicos Ejemplo: struct Point{ double X; double Y; void MoveBy(double dX, double dY) { X+=dX; Y+=dY; }}

edu.red Propiedades Unión entre campos y métodos Se recomienda su uso en: Implementación de miembros de solo lectura (omitiendo la claúsula set) Validación durante la asignación Valores calculados o compuestos Ejemplo: string Name { get { return name; } set { name = value; } }

edu.red Indices Modo consistente para la construcción de contenedores Construidos sobre la filosofía de las “propiedades” Posibilita el acceso indizado a los objetos Calificador del indice puede ser de cualquier tipo Ejemplo: object this[string index]{ get { return Dict.Item(index); } set { Dict.Add(index,value); } }

edu.red Convertidos por el compilador en llamadas a métodos, para facilitar la interoperabilidad entre lenguajes

Indices get_Item() {

} void set_Item(, value) {

}

edu.red Delegados Delegados Similares a los punteros a función de C y C++ Fuerte chequeo de tipos, lo que impide la confusión antes existente en relación con los type-cast Ejemplo: delegate void Clicked(Element e, Point p);

edu.red Instrucciones Similares a C, C++: control de flujos y ciclos if () { … } else { … }; switch() { case : …; }; while () { … }; for (;;) { … }; do { … } while ();

edu.red Instrucciones Diferentes a C, C++: lock(){ … }; Sincronización de secciones críticas es inherente al lenguaje checked {…}; unchecked { …}; Protección contra el “Integer overflow”

edu.red Métodos para colecciones: foreach Soporte directo a las iteraciones sobre las colecciones Pueden ser usados por arreglos y otras colecciones Ademas se puede usar con cualquier otra clase Implemente IEnumerable con el método GetEnumerator() Devolviendo un objeto implementado de tipo IEnumerator Ejemplo: Point[] Points = GetPoints();foreach( Point p in Points ){ MyPen.MoveTo(p.x,p.y);}

edu.red Operadores Similares a C: Lógicos/condicionales: && || Aritméticos: * / + – << >> Relacionales: == != < > >= <= No exactamente C: Para bool: & y | son lógicos con evaluación completa Para integer: & y | ejecutan AND/OR binarios

edu.red Operadores No similares a C: is Prueba el tipo en tiempo de ejecución as Convierte un valor a un tipo especificado typeof Devuelve el tipo en tiempo de ejecución

edu.red Sobre carga de operadores La mayor parte pueden ser redefinidos Aritméticos, relacionales, condicionales, y lógicos No permitido para Operadores de asignación Operadores especiales (sizeof, new, is, typeof) Ejemplo: Public static Total operator +(int Amount, Total t){ t.total += Amount;}

edu.red Modificadores de acceso Adopta el modelo C++ public ? cualquiera puede invocarlo o accederlo protected ? solamente los miembros pueden accederlo private ? solo los miembros de exactamente esta clase pueden accederlo

edu.red Modificadores de acceso Expande el modelo de C++ sealed ? No se puede usar como clase base de una jerarquía internal ? Acceso público solamente desde su ensamblado protected internal ? protegido dentro de su ensamblado

edu.red “Y los punteros?” C# soporta Tipo string intrínseco Modelo de recolección de basura Parámetros por referencia usando ref void increment(ref int value, int by) Parámetros de salida usando out bool add(int a, int b, out int c) Punteros están disponibles para el código marcado como unsafe unsafe void crypt(byte[] arr) { byte * b = arr; … }

edu.red Boxing y Unboxing Tipos por valor pueden "boxed" y "unboxed" "Boxing" permite que los tipos por valor se traten por referencia Basado en el tipo objeto implicito de todos los tipos. Ponga el valor en una caja y referénciela double Value; // Boxing object BoxedValue = Value;// UnboxingValue = (double)BoxedValue; 42 42 42 Unboxed: Copia Boxed: Referencia

edu.red Recolección de basura Creación nuevos objetos y arreglos de datos Todos son creados mediante el uso de new El .NET runtime mantiene un registro automatico de todo el uso de la memoria El recolector de basura automaticamente remueve todos los objetos que esten sin uso Un uso más eficiente de la memoria Fácil de usar y “cero escapes de memoria”

edu.red Manipulación de Excepciones Similar a C++ Ejemplo: try ejecuta este código …si ocurre un error, catch que puedo hacer en ese caso … …finally me permite realizar algun trabajo manual de rescate try { //… run code}catch(SomeException e){ //… handle}finally{ //…end gracefully}

edu.red Diferencias con C++ C# es muy parecido a C/C++ Corrige la mayoría de sus errores: Estricto chequeo de tipos No más"fall-through" por break en la instrucción switch Expresiones booleanas y las instrucciones que las involucran son estrictamente chequeadas.

edu.red Espacios de nombres Toda definición debe estar contenida en un espacio de nombres Impide colisiones de nombres Organiza el código Pueden y deben ser anidados

edu.red Espacios de nombres Agrupa clases y tipos por semántica Declarados con la palabra clave namespace Referenciados con using

edu.red Herramientas disponibles .NET Framework SDK—todo lo necesario para construir aplicaciones Compilador C# Debugger Visual Visual Studio.NET—the productivity rocket Ambiente de desarrollo optimizado para C# “Code wizards” y templates Ayuda inteligente

edu.red .NET Framework SDK Compilador de C# (+ Visual Basic, C++, and JScript) Todas las caracteristicas del lenguaje Ejecucion desde linea de comandos Visual Debugger—GuiDebug Desarrollado sobre la tecnologia Visual Studio.NET Acceso completo a los metadatos en tiempo de ejecución Herramientas Nmake, security, configuration, IL Disassembler, … Libre para todos

edu.red Visual Studio.NET Desarrollado para .NET Framework SDK Reinvención del concepto de Visual Studio®, ahora con: Proyectos Multi-lenguajes Un ambiente integrado de desarrollo para todos los lenguajes y tareas Herramientas integradas: Visual Modeler, Database Management Perfecta integración de la ayuda Alta productividad para todo: RAD Rapid application development Proyectos de gran escala

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente