1. Microsoft
Visual Studio .Net 2005
Introduccion Visual C#.Net
2. Introduccion a Visual C#.Net
Sistemas de Tipos
Clases y Estructuras
Manejo de Excepciones
3. Introduccion a Visual C#.Net
Sistemas de Tipos
• Tipos primitivos
• Variables y constantes
• Arrays (matrices)
Clases y Estructuras
Manejo de Excepciones
4. Tipos Primitivos
Tipos de datos definidos en .NET Framework y los alias utilizados en Visual C# 2005.
5. Variables y Constantes
Las constantes son valores que nunca cambian y pueden ser de dos tipos:
0.1416; // constante literal
const double iva = 0.12; //constante con nombre
En Visual C# 2005, en las variables en siempre se indican el tipo de datos que tendrá
string saludo = “hola mundo”;
int a, b, c; //declaracion de multiples variables
double x=0.10, y=0.20, z=0.30 ; //declaracion y asignacion de variables
Las cadenas de caracteres en C#, se definen indicando la cadena entre comillas dobles
string s1 = "Hola, ";
s1 = s1 + "mundo";
// StringBuilder deberíamos usarla enconcatenaciones o uniones de cadenas
StringBuilder sb = new StringBuilder();
sb.Append("Hola, ");
sb.Append("mundo");
6. Arrays y Matrices
Los arrays se definen indicando un par de corchetes en el tipo de datos
int[ ] numeros; // un array se declara con el tipo de dato seguido de [ ]
Numeros = new int[4]; //indica el numero de elementos que tendra el array
int[ ] num2 = new int[3];
El índice inferior será cero y el índice superior será uno menos del número de elementos
num2[0] = 3; //usamos los corchetes y la posición en la que queremos guardar
num2[1] = 22;
Para recorrer los elementos de un array podemos hacerlo de las siguientes formas
for (int i = 0; i < num2.Length; i++)
{
Console.WriteLine(num2[i]);
}
foreach(int i in num2)
{ Console.WriteLine(i); }
7. Arrays y Matrices
Declarar arrays e inicializarlos al mismo tiempo, aunque la sintaxis es un poco distinta,
ya que en esta ocasión debemos indicar varios valores después de definir el array
string[ ] nombres = {"Pepe", "Juan", "Luisa"};
string[,] nombres = { { "Juan", "Pepe" }, { "Ana", "Eva" } };
// en este código tendríamos un array bidimensional con los siguientes valores:
nombres[0,0]= Juan
nombres[0,1]= Pepe
nombres[1,0]= Ana
nombres[1,1]= Eva
Cambiar el tamaño de un array en el que añadimos 5 elementos más
int[ ] original = { 1, 2, 3, 4 };
int[ ] copia = new int[original.Length]; // Copiamos el original en la copia
original.CopyTo(copia, 0);
original = new int[original.Length + 5];
// Asignamos nuevamente lo copiado a partir del primer elemento
copia.CopyTo(original, 0);
8. Introduccion a Visual C#.Net
∀ Sistemas de Tipos
∀ Clases
• Clases
• Definir una Clase
• Instanciar una Clase
Manejo de Excepciones
9. Que es una Clase?
• Una clase es una descripción de un grupo de objetos con:
– Propiedades en común (atributos)
– Comportamiento similar (operaciones)
– La misma forma de relacionarse con otros objetos
– Una semántica en común (significan lo mismo)
• Una clase es una abstracción que:
– Enfatiza las características relevantes
– Suprime otras características (simplificación)
• Un objeto es una instancia de una clase
10. Ejemplo de Clase
• Clase: Curso
• Estado (Atributos)
– Nombre
– Ubicación
– Días Ofrecidos
– Horario de Inicio
– Horario de Término
• Comportamiento (Métodos)
– Agregar un Alumno
– Borrar un Alumno
– Entregar un Listado del Curso
– Determinar si está Completo
11. Definir una Clase
En Visual C# 2005, todo el código que queramos escribir, lo tendremos
que hacer en un fichero con la extensión .cs
Accesibilidad A los elementos de nuestro código podemos darle diferentes tipos.
public: Acceso no restringido.
public
protected: Acceso limitado a la clase contenedora o a tipos derivados de esta clase.
protected
internal: Acceso limitado al proyecto actual.
internal
protected internal: Acceso limitado al proyecto o a los tipos derivados de la clase
internal
private: Acceso limitado al tipo contenedor.
private
class Cliente
{
private int CliCodigo;
public string Nombre;
public string Apellidos;
}
12. Definir una Clase
En Visual C# 2005, todo el código que queramos escribir, lo tendremos que hacer en
un fichero con la extensión .cs, ademas un fichero C# puede contener varias clases
class Cliente
{
private int CliCodigo;
private string CliNombre;
public string Nombre
{
get
{
return CliNombre;
}
set
{
CliNombre = value;
}
}
public void Saludo()
{
Console.WriteLine("Hola mundo!!");
Console.ReadLine();
}
}
13. Instaciar una Clase
Con la clase ya definida disponemos de una especie de plantilla
para crear objetos en memoria
Declarar primero la variable y después instanciarla
Cliente objCliente; //variable cli1 para acceder a una clase de tipo Cliente
objCliente = new Cliente(); //referencia a objeto Cliente usando: new Cliente():
Declarar e instanciar en un solo paso es la otra forma de instanciar
una clase es decir haciéndolo al mismo tiempo que la declaramos
Cliente objCliente = new Cliente();
14. Instaciar una Clase
Con la clase ya definida disponemos de una especie de plantilla
para crear objetos en memoria
Declarar primero la variable y después instanciarla
Cliente objCliente; //variable cli1 para acceder a una clase de tipo Cliente
objCliente = new Cliente(); //referencia a objeto Cliente usando: new Cliente():
Declarar e instanciar en un solo paso es la otra forma de instanciar
una clase es decir haciéndolo al mismo tiempo que la declaramos
Cliente objCliente = new Cliente();
15. Introduccion a Visual C#.Net
∀ Sistemas de Tipos
∀ Clases
∀ Manejo de Excepciones
• Try
• Catch
16. Excepciones
Aplicaciones no estarán libres de errores lógicos.
Errores que se produzcan en tiempo de ejecución.
C# pone a nuestra disposición el manejo de excepciones
Las excepciones en C# las podemos controlar usando las
instrucciones: try / catch / finally
Bloque try
El código a usar será un código normal.
Se produce el error y se usará el bloque catch.
Bloque catch
Se produce una excepción y la capturamos en un bloque catch.
En el bloque catch se indica el tipo de excepción a capturar.
17. Try & Catch
Con la clase ya definida disponemos de una especie de plantilla
para crear objetos en memoria
try
{
// código que queremos controlar
}
catch
{
// el código a ejecutar cuando se produzca cualquier error
}
Bloque finally
Indicar instrucciones que queremos ejecutar, se produzca o no la excepción.
Nos aseguramos que siempre se ejecutará un código.
18. int i, j;
try
{
Console.Write("Un numero ");
i = Convert.ToInt32(Console.ReadLine());
Console.Write("Otro numero ");
j = Convert.ToInt32(Console.ReadLine());
int r = i / j;
Console.WriteLine("El resultado es: {0}", r);
}
catch (FormatException)
{
Console.WriteLine("No es un número válido"); // Salimos de la función, pero se ejecutará el finally
return;
}
catch (DivideByZeroException)
{
Console.WriteLine("La división por cero no está permitida.");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message); // Captura del resto de excepciones
}
finally
{
Console.WriteLine("Se acabó"); // Este código siempre se ejecutará
}
Notas del editor
Las últimas filas mostradas en la tabla son tipos especiales que si bien son parte del sistema de tipos comunes (CTS) no forman parte de la Common Language Specification (CLS), es decir la especificación común para los lenguajes &quot;compatibles&quot; con .NET, por tanto, si queremos crear aplicaciones que puedan interoperar con todos los lenguajes de .NET, esos tipos no debemos usarlos como valores de devolución de funciones ni como tipo de datos usado en los parámetros de las funciones.
La forma más sencilla de entender el concepto de clase es si la vemos como una agrupación de objetos con características similares. Por ejemplo, un auto ES UN tipo particular de vehículo motorizado, con lo cual dentro de su comportamiento podemos encontrar “arrancar” y “frenar”, entre otros. Ahora bien, una motocicleta también ES UN vehículo motorizado, y tiene dentro de su comportamiento “arrancar” y “frenar”. El conjunto de atributos también es compartido entre una motocicleta y un automóvil, aunque sus valores no coincidan necesariamente. Por ejemplo, ambos tienen el atributo “cantidad de ruedas”, sólo que el auto tiene 4 y la motocicleta 2.