Publicado el 11 de Abril del 2018
1.584 visualizaciones desde el 11 de Abril del 2018
773,0 KB
73 paginas
Creado hace 21a (17/07/2002)
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
CodCod. 1728.61
. 1728.61
PLATAFORMA .NET Y
PLATAFORMA .NET Y
SERVICIOS WEB
SERVICIOS WEB
Características Generales de C#
Características Generales de C#
Benjamín López Pérez
Benjamín López Pérez
benja@lsi
benja@
lsi..uniovi
uniovi.es.es
Dpto. de Informática
Dpto. de Informática
OOTOOTLabLab -- Laboratorio de Tecnologías de Orientación a Objetos
Laboratorio de Tecnologías de Orientación a Objetos
http://wwwwww..ootlab
http://
ootlab..uniovi
uniovi.es.es
Contenidos
Contenidos
1.1. Generalidades
Generalidades
2.2. Tipos
Tipos
3.3. Expresiones
Expresiones
4.4. Declaraciones
Declaraciones
5.5. Sentencias
Sentencias
6.6. Clases y estructuras
Clases y estructuras
7.7. Código Inseguro
Código Inseguro
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Origen y necesidad de un nuevo lenguaje
Origen y necesidad de un nuevo lenguaje
Creadores: Anders Hejlsberg y Scott Wiltamuth
Necesidad:
Específico para .NET
Orientado a componentes
Notas:
Sintaxis de C/C++/Java con facilidad de VB
BCL programada en C# -> depurado y optimizado
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
IDLs, ficheros de cabecera,...)
, ficheros de cabecera,...)
(sin IDLs
inneccesarios (::, macros, etc.)
(::, macros, etc.)
Características de C#
Características de C#
Sencillez
Sencillez
Autocontenido (sin
Autocontenido
Sin elementos inneccesarios
Sin elementos
Tipo básicos de tamaño fijo
Tipo básicos de tamaño fijo
Modernidad
Modernidad
Tipos básicos para decimales, cadenas y lógicos
Tipos básicos para decimales, cadenas y lógicos
Soporte extensible para colecciones
Soporte extensible para colecciones
Orientado a objetos
Orientado a objetos
Sin funciones ni variables globales
Sin funciones ni variables globales
Herencia simple
Herencia simple
Encapsulación con
con public
Encapsulación
Redefinibildad explícita (menos errores y más eficiente)
explícita (menos errores y más eficiente)
Redefinibildad
public,,protected
protected,,private
private e e internal
internal..
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Características de C#
Características de C#
Orientado a componentes
Orientado a componentes
De base soporta propiedades, atributos y eventos
De base soporta propiedades, atributos y eventos
Seguridad de tipos
Seguridad de tipos
Control de conversiones
Control de conversiones
Control de inicialización de variables
Control de inicialización de variables
Control de índices en accesos a tablas
Control de índices en accesos a tablas
Control de desbordamientos
Control de desbordamientos
Control de tipos en “punteros a función”
Control de tipos en “punteros a función”
Control en parámetros múltiples
Control en parámetros múltiples
Gestión automática de memoria
Gestión automática de memoria
Recolector de basura
Recolector de basura
Liberación recursos determinista con using
using
Liberación recursos determinista con
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Características de C#
Características de C#
Instrucciones seguras
Instrucciones seguras
Sólo condiciones lógicas
Sólo condiciones lógicas
Sin traspasos implícitos entre casos de switch
switch
Sin traspasos implícitos entre casos de
Sistema de tipos unificados
Sistema de tipos unificados
Clase padre común System
Clase padre común
Boxing y y unboxing
Boxing
Tipos básicos de tamaño fijo
Tipos básicos de tamaño fijo
Extensibilidad de operadores
Extensibilidad de operadores
Redefiniciones inteligentes y consistentes
Redefiniciones inteligentes y consistentes
Indizadores
Indizadores
Extensibilidad de tipos básicos
Extensibilidad de tipos básicos
Posibilidad de paso por referencia para eficiencia
Posibilidad de paso por referencia para eficiencia
System..Object
Object
unboxing para homogeneidad y eficiencia
para homogeneidad y eficiencia
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Características de C#
Características de C#
Extensibilidad de modificadores
Extensibilidad de modificadores
Atributos
–– Atributos
Versionable
Versionable
–– Redefinir virtual con
–– Ocultar con
Compatible
Compatible
Con funciones nativas (ejej: Win32) con
–– Con funciones nativas (
Con objetos COM con tlbimp
tlbimp y y regasm
regasm
–– Con objetos COM con
con aximp
Con controles ActiveX
–– Con controles
Redefinir virtual con override
override
Ocultar con newnew
: Win32) con Pinvoke
Pinvoke
ActiveX con
aximp y y regasm
regasm
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Introducción a C#
C# Avanzado
1.1. Generalidades
Generalidades
2.2.
Tipos
Tipos
Expresiones
3.3. Expresiones
4.4. Declaraciones
Declaraciones
Sentencias
5.5. Sentencias
6.6. Clases y Estructuras
Clases y Estructuras
7.7.
Herencia
Herencia
8.8.
Interfaces
Interfaces
9.9.
Delegados
Delegados
10.10. Excepciones
Excepciones
11.11. Namespaces
Namespaces y Ensamblados
y Ensamblados
12.12. Atributos
Atributos
13.13. Threads
Threads
14.14. Comentarios XML
Comentarios XML
Referencias:
B.Albahari, P.Drayton, B.Merrill: C# Essentials. O'Reilly, 2001
S.Robinson et al: Professional C#, Wrox Press, 2001
Documentación en línea en el CD .NET SDK
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Características de C#
Características de C#
Muy similar a Java
70% Java, 10% C++, 5% Visual Basic, 15% nuevo
Como en C++
Aritmética punteros en código
(Operador) Sobrecarga
inseguro
Algunos detalles sintácticos
Como en Java
Orientación a Objetos (herencia
simple)
Interfaces
Excepciones
Threads
Namespaces (como Paquetes)
Fuertemente tipado
Recolector de basura
Reflexión
Carga dinámica de código
...
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Nuevas caracteríticas
Nuevas
caracteríticas de C#
de C#
Nuevo (comparado con Java)
Referencias y parametros de salida
Objetos en el stack (structs)
Arrays Rectangulares
Enumeraciones
Sistema de tipos Unificado
goto
Versionado
"Simplificaciones Sintácticas"
Programación basada en componentes
- Propiedades
- Eventos
Delegados
Indizadores
Sobrecarga de operadores
Sentencias foreach
Boxing/unboxing
Atributos
...
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Hola Mundo
Hola Mundo
Fichero Hola.cs
using System
System;;
using
class Hola {
Hola {
class
static voidvoid MainMain() {() {
static
Console..WriteLine
Console
}}
WriteLine("Hola Mundo");
("Hola Mundo");
}}
Compilación (en la ventana de consola)
csc Hola.cs
Ejecución
Hola Mundo
utiliza el namespace System
el punto de entrada se debe llamar Main
el nombre de fichero y de la clase
la salida va a la consola
no tienen por que ser iguales
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Estructura de los Programas en C#
Estructura de los Programas en C#
Programa
Fich. F1.cs
Fich. F2.cs
Fich. F3.cs
namespace A {...}
namespace B {...}
namespace C {...}
clase X {...}
clase Y {...}
clase Z {...}
Si no se especifica namespace
Si no se especifica
Los Los Namespaces
namespace => => namespace
namespace por defecto anónimo
por defecto anónimo
Namespaces pueden contener también estructuras, interfaces,
pueden contener también estructuras, interfaces,
delegados y enumerados
delegados y enumerados
Namespace puede ser "reabierto" en otros ficheros
puede ser "reabierto" en otros ficheros
Caso más simple: clase única, fichero único, namespace
Namespace
Caso más simple: clase única, fichero único,
namespace por defecto
por defecto
Cursos de Verano 2002
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO
Características generales de C#
Características generales de C#
OOTOOTLabLab
Benjamín López Pérez
Benjamín López Pérez
Un Programa formado por 2 Ficheros
Un Programa formado por 2 Ficheros
Contador.cs
Contador {{
class Contador
class
int valval = 0;= 0;
int
public voidvoid
Comentarios de: Características Generales de C# (0)
No hay comentarios