2. Introducción
El lenguaje C# se presenta como el último invento en
materia de lenguajes de programación, y constituye
también la más reciente y ambiciosa apuesta en este
sentido por parte de Microsoft.
A continuación revisaremos los aspectos más
importantes de este lenguaje de programación y
explicaremos de manera simple cada uno de sus
aspectos mas importantes. Empecemos: …
3. Visión general del C#
Lenguaje de programación orientado a objetos simple,
moderno y de propósito general.
Inclusión de principios de ingeniería de software tales como
revisión estricta de los tipos de datos, revisión de límites de
vectores, detección de intentos de usar variables no
inicializadas, y recolección de basura automática.
Capacidad para desarrollar componentes de software que se
puedan usar en ambientes distribuidos.
Portabilidad del código fuente.
4. Visión general del C#
Fácil migración del programador al nuevo lenguaje,
especialmente para programadores familiarizados con C,
C++ y Java.
Soporte para internalización.
Adecuación para escribir aplicaciones de cualquier
tamaño: desde las más grandes y sofisticadas como
sistemas operativos hasta las más pequeñas funciones.
Aplicaciones económicas en cuanto a memoria y
procesado.
5. Historia y antecedentes del C#
Fue desarrollado por un equipo dirigido por Anders
Helsjberg y Scott Wiltamuth.
Para solventar necesidades de evolución del software.
Contiene sus bases en c, c++ y java.
Hubo necesidad para implementar software en la
plataforma web y móvil.
El origen del nombre se debe a c++++.
Se estandarizó a través de ECMA internacional.
6. Evolución del C#
C # 1.0
Lanzado con NET 1.0 y VS2002 (enero de 2002).
El uso de código administrado se introdujo con esta
versión. C # 1.0 fue el primer idioma que el
desarrollador ha adoptado para construir. NET.
C# 1.2
Puesto en libertad con NET 1.1 y VS2003 (abril de 2003).
Primera versión para llamar a Dispose en IEnumerator s
que implementa IDisposable . IDisposable en simples
palabras es el recolector de basura.
7. Evolución del C#
C# 2.0 (Visual Studio 2005)
Métodos anónimos: es pasar un bloque de código como parámetro a
un delegado, esto es útil para evitar la sobrecarga innecesaria de
métodos.
Nullable Tipo: Capacidad de asignar valores nulos, muy útil para el uso
de base de datos.
Clase parcial: permite que los programadores trabajen al mismo
tiempo una sola clase ya que se divide en varios archivos gracias a
esta característica.
Covarianza y Contra-varianza: la covarianza y la contra-varianza
permiten la conversión implícita de referencias para los tipos de matriz,
los tipos de delegado y los argumentos de tipo genérico
8. Evolución del C#
C# 3.0 (Visual Studio 2008)
Método de extensión
Árbol de Expresión: Varias expresiones Lambda.
Tipos anónimos
LINQ: Consultas similares a SQL para clases.
Tipo implícito (var)
9. Evolución del C#
C# 4.0 (Visual Studio 2010)
Late Binding: es un soporte para programar.
Los argumentos con nombre: ayuda a la legibilidad del
código.
Parámetros opcionales: se iguala a un valor cuando se
define la función que se utilizara como default por si el
valor no se ingresa al llamar dicha función.
Más soporte COM
10. Evolución del C#
C# 5.0 (Visual Studio 2012)
Async Feature: es una buena manera de aprovechar
los recursos y disminuir el tiempo de espera; definiendo
métodos asincrónicos y de espera.
La información del llamante: es muy útil para realizar
diagnósticos y depuración, porque por medio de esta
característica puedes obtener la información del
llamante de una función determinada.
11. Evolución del C#
C# 5.0 (Visual Studio 2012)
Async Feature: es una buena manera de aprovechar
los recursos y disminuir el tiempo de espera; definiendo
métodos asincrónicos y de espera.
La información del llamante: es muy útil para realizar
diagnósticos y depuración, porque por medio de esta
característica puedes obtener la información del
llamante de una función determinada.
12. Compiladores e IDE's
Microsoft .NET Framework 2.0 (SDK) (Windows).
Microsoft Visual Studio, IDE por excelencia de este lenguaje.
SharpDevelop, IDE libre para C# bajo licencia GNU LGPL, con
una interfaz muy similar a Microsoft Visual Studio.
Mono, es una implementación con licencia GNU GPL de todo el
entorno .NET desarrollado por Novell. Como parte de esta
implementación se incluye un compilador de C#, utilizado en
diversos Sistemas Operativos.
Delphi 2006, de Borland Software Corporation.
DotGNU Portable.NET, de la Free Software Foundation.
13. Profundizando en .Net
Framework
Arquitectura
Dentro de este aspecto, podemos basarnos en el
modelo MVC (Controlador => Modelo => Vista).
Características:
Interoperabilidad
Independencia de lenguajes
Portabilidad
Seguridad
Administración de recursos
Desarrollo simple
Rendimiento
Infraestructura:
14. Tipos de Datos Primitivos C#
Tipo de datos de enteros
Tipo Equivalente BCL Tamaño Rango Significado
byte System.Byte 8-bit (1-byte) 0 a 255 Entero sin signo
sbyte System.SByte 8-bit (1-byte) -128 a 127 Entero con signo
short System.Int16 16-bit (2-byte) -32.768 a 32.767
Entero corto con
signo
ushort System.UInt16 16-bit (2-byte) 0 a 65.535 Entero corto sin signo
int System.Int32 32-bit (4-byte)
-2.147.483.648 a
2.147.483.647
Entero medio con
signo
uint System.UInt32 32-bit (4-byte) 0 a 4.294.967.295
Entero medio sin
signo
long System.Int64 64-bit (8-byte)
-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807
Entero largo con
signo
ulong System.UInt64 64-bit (8-byte)
0 a
18.446.744.073.709.551.615
Entero largo sin signo
15. Tipos de Datos Primitivos C#
Tipo de datos de coma flotante
Tipo
Equivalente
BCL
Tamaño Rango Significado
float System.Single 32-bit (4-byte)
±1.401298E−45
a
±3.402823E+38
Coma flotante
corto
double System.Double 64-bit (8-byte)
±4.94065645841
246E−324 a
±1.79769313486
232E+308
Coma flotante
largo
decimal System.Decimal
128-bit (16-
byte)
−7.92281625142
6433759354395
0335 a
+7.92281625142
6433759354395
0335
Coma flotante
monetario
16. Tipos de Datos Primitivos C#
Tipo de datos de caracteres
Tipo Equivalente BCL Tamaño Rango Significado
char System.Char 16-bit (2-byte) 'u0000' a 'uFFFF' Carácter unicode
Tipo de datos lógicos
Tipo Equivalente BCL Tamaño Rango Significado
bool System.Boolean 8-bit (1-byte) true o false
Verdadero o
falso
17. Tipos de Datos C#
Enteros
decimal 245, [0..9]+
hexadecimal 0xF5, 0x[0..9, A..F, a..f]+
entero largo 12L
entero largo sin signo 654UL
Coma flotante
float 23.5F, 23.5f; 1.72E3F, 1.72E3f, 1.72e3F, 1.72e3f
double 23.5, 23.5D, 23.5d, 1.72E3, 1.72E3D
decimal 9.95M
Caracteres
char 'a', 'Z', 'u0231'
Cadenas
String "Hello, world"; "C:Windows", @"C:Windows"
18. Definir Variables
Declarar una variable:
int miNumero; // Declaramos la variable, pero no la inicializamos con ningún valor.
Para asignar un valor a una variable, se indica el identificador de la
misma, seguido del símbolo igual (=) y el valor que queremos
que almacene:
miNumero = 5; // Asignamos el valor '5'.
También se puede declarar y asignar un valor al mismo tiempo:
int miNumero = 5; // Declaramos la variable, y asignamos el valor '5'.
19. Conversiones
Conversiones de tipo de datos
byt
e
sbyte short
ushor
t
int uint long ulong float
doubl
e
deci
mal
char bool
byte E A A A A A A E E E E I
sbyte E A E A E A A E E E E I
short E E E A
A
A A E E E E I
ushort E E E A A A A E E E E I
int E E E E E A A E E E E I
uint E E E E E A A E E E E I
long E E E E E E E E E E E I
ulong E E E E E E E E E E E I
float E E E E E E E E A E I I
double E E E E E E E E E E I I
decim
al
E E E E E E E E E E I I
20. Algoritmos C#
If-Else
if (i == 2) { // ...
}else if (i == 3) { // ...
}else { // ...
}
switch
switch (i) {
case 1:
...
break;
case 2:
case 3:
...
break;
default:
...
break;
}
for
for (int i = 0; i < 10; i++) {
// ...
}
while
while (i < 10) {
// ...
}
do-while
do {
// ...
} while (true);
foreach
foreach (char c in charList) {
// ...
}
21. Programación orientada a Objetos
La POO es un paradigma que
utiliza objetos en sus
interacciones basado en las
técnicas de los pilares
Encapsulamiento ,Herencia,
Polimorfismo y abstracción.
23. Encapsulamiento
Es el ocultamiento del estado
de un objeto, el cual solo se
puede cambiar por medio de
métodos públicos establecidos
(interfaz pública).
Tipos de Acceso:
• Private
• Public
• Protected
24. Herencia y Polimorfismo
La herencia es cuando una clase (Padre) le comparte todos sus
métodos, constructores y atributos (públicos) a una clase Hija, la
clase padre generalmente es abstracta, por ejemplo:
El polimorfismo ocurre cuando una
clase padre tiene una instancia de
una clase hija, es muy útil para tratar
los objetos de forma homogénea.