Está en la página 1de 64

Sus principales

creadores son Scott


Wiltamuth y Anders
Hejlsberg, éste último
también conocido por
haber sido el diseñador
del lenguaje Turbo
Pascal y la herramienta Que es
RAD Delphi.
C#.?
Es un lenguaje de
programación orientado a
objetos desarrollado y
estandarizado por Microsoft
como parte de su
plataforma .NET, que después
fue aprobado como un
Que es
estándar por la ECMA (ECMA-
334) e ISO (ISO/IEC 23270).
C#.?
C#.?

C# es un lenguaje de
programación que los
programadores usan para
crear software (Escritorio,
móvil, web, videojuegos,
etc…)
Caracteristicas de C#.
Flexible: puede ejecutarse de forma
local o web.
Potente: tiene toda la fortaleza de C++
Facil de usar: Facil manejo de los
errores.
Orientado a Objetos: clases, metodos,
propiedades, etc.
Visual: se puede usar GUI
Seguro: es un lenguaje que fue
desarrollado para ser usado en internet
porlo tanto es extremadamente seguro.
.NET

Visual Studio
Espacios de nombres
Estructura del código en C#
Tipos de Datos: Numéricos
Decimales.
Resumen:
Porque mejor es la
sabiduría que las joyas, y
todas las cosas deseables
no pueden compararse con
ella
Operadores.

Un operador en C# es un símbolo
formado por uno o más caracteres
que permite realizar una
determinada operación entre uno
o más datos y produce un
resultado.
Clasificación según el tipo
de operación que pueden
realizar:
Aritmeticos.

Logicos.

Relacionales.
Estructuras de control
IF condicional

if (bool-expression)
{
// Bloque de codigo. verdadero
}
//despues de la condicion
Switch: seleccion de casos

switch(maritalStatus)
{
case 0:
// . . . do the unmarried stuff . . .
break;
case 1:
// . . . do the married stuff . . .
break;
case 2:
// . . . do the divorced stuff . . .
break;
default:
// Goes here if it fails to pass a case;
// this is probably an error condition.
break;
}
WHILE: hacer mientras la expresion a
evaluar devuelve verdadero.

while(bool-expression)
{
// . . . repeatedly executed as long as the
expression is true.
}
Do While: hacer al menos una o mas
veces mientras la expresion a evaluar
devuelva verdadero.

int year = 1;
do
{
// . . . some calculation . . .
year = year + 1;
} while (year < duration);
For : desde – hasta – incremento.

// Here is one C# expression or another.


a = 1;
// Now loop for awhile.
for(int year = 1; year < duration; year = year +
1)
{
// . . . body of code . . .
}
// The program continues here.
a = 2;
Foreach : por cada elemento de una
matriz.

Ejm:
Int [] myArray;
myArray = new int [5];

Foreach(int arrayElement in myArray)
{
//Codigo…
}
Matrices
Array unidimensional
Una tabla unidimensional es un tipo
especial de variable que es capaz
de almacenar en su interior y de
manera ordenada uno o varios
datos de un determinado tipo.
Para declarar variables de este tipo especial se usa
la siguiente sintaxis:

<tipoDatos>[] <nombreTabla>;

<tipoDatos>[] <nombreTabla> = new <tipoDatos>[]


{<valores>};
Tabla dentada.

Una tabla dentada no es más que una


tabla cuyos elementos son a su vez
tablas, pudiéndose así anidar cualquier
número de tablas.

int[][] tablaDentada = new int[2][] {new


int[] {1,2}, new int[] {3,4,5}};
Tablas
multidimensionales
Una tabla multidimensional es una
tabla cuyos elementos se encuentran
organizando una estructura de varias
dimensiones.

int[,] tablaMultidimensional = new


int[3,4] {{1,2,3,4}, {5,6,7,8},
{9,10,11,12}};
Manipulación de Ficheros
en C#.
Ficheros

Para abrir y leer el archivo, se


utilizan los objetos del
espacio de nombres
System.IO
Ficheros

La lectura y escritura a un archivo son


hechas usando un concepto genérico
llamado stream. La idea detrás del
stream existe hace tiempo, cuando los
datos son pensados como una
transferencia de un punto al otro como
un flujo de datos.
Ficheros
Ficheros

FileStream actúa como un intermediario


entre el sistema de archivos y nuestra
aplicación, permitiendo realizar de una
manera limpia y sencilla operaciones de
escritura y lectura en archivos.
Ficheros

string fileName = "C:/Users/LUIS/Desktop/hola.txt";

FileStream stream = new FileStream(fileName,


FileMode.Open, FileAccess.Read);
Ficheros

File nos permite obtener un


FileStream con parámetros
específicos de acuerdo al método
utilizado para obtenerlo.
Ficheros

Con la clase StreamWriter, solo nos


debemos preocupar por utilizar el método
Write o WriteLine para escribir datos en un
archivo de texto.

StreamWriter writer = new StreamWriter(stream2);

writer.WriteLine("Esta es la primera línea del


archivo.");
Ficheros
El complemento del objeto StreamWriter
es el objeto StreamReader, cuyo
principal objetivo es facilitarnos las
tareas de lectura de cadenas de
caracteres.

StreamReader reader = new StreamReader(stream);

while (reader.Peek() > -1)


Console.WriteLine(reader.ReadLine());
Ficheros
BinaryWriter.
Ficheros
BinaryReader
Ficheros

Resultado
POO

Programación Orientada a
Objetos
POO
Conceptos de clase y objeto

C# es un lenguaje orientado a objetos


puro , lo que significa que todo con lo que
vamos a trabajar en este lenguaje son
objetos. Un objeto es un agregado de
datos y de métodos que permiten
manipular dichos datos, y un programa en
C# no es más que un conjunto de objetos
que interaccionan unos con otros a través
de sus métodos.
POO
Sintaxis de definición de clases

La sintaxis básica para definir una


clase es la que a continuación se
muestra:

class <nombreClase>
{
<miembros>
}
POO

Miembros

Los miembros de una clase son los


datos y métodos de los que van a
disponer todos los objetos de la misma.
POO

Campos

Un campo es un dato común a todos los


objetos de una determinada clase.

<tipoCampo> <nombreCampo>;
POO
A continuación se muestra un ejemplo de
definición de una clase de nombre
Persona que dispone de tres campos:
class Persona{
string Nombre;
int Edad;
string DUI;
}
POO
Métodos

Un método es un conjunto de
instrucciones a las que se les asocia un
nombre de modo que si se desea
ejecutarlas basta referenciarlas a través
de dicho nombre en vez de tener que
escribirlas, los métodos permiten
manipular los datos almacenados en los
objetos.
POO
La sintaxis que se usa en C# para definir
los métodos es la siguiente:

<tipoDevuelto> <nombreMétodo> (<parametros>)


{
<instrucciones>
}
POO
class Persona{
string Nombre;
int Edad;
string NIF;
void Cumpleaños() {
Edad++;
}
}
POO

Creación de objetos

Cómo crear objetos de una determinada


clase.

new <nombreTipo>(<parametros>)
POO

Constructor

El antes comentado constructor de un


objeto no es más que un método definido
en la definición de su tipo que tiene el
mismo nombre que la
clase a la que pertenece el objeto y no
tiene valor de retorno.
class Persona {
POO
string Nombre;
int Edad;
string DUI;
void Cumpleaños(){
Edad++;
}
Persona (string nombre, int edad, string dui){
Nombre = nombre;
Edad = edad;
DUI = dui;
}
}
POO

Creacion del objeto.

new Persona(“José”, 22, “12344321-A”)


POO

Concepto de herencia
Es un mecanismo que permite definir nuevas
clases a partir de otras ya definidas de modo que si
en la definición de una clase indicamos que ésta
deriva de otra, entonces la primera -a la que se le
suele llamar clase hija- será tratada por el compilador
automáticamente como si su definición incluyese la
definición de la segunda –a la que se le suele llamar
clase padre o clase base.
POO

Sintaxis:

class <nombreHija>:<nombrePadre>{
<miembrosHija>
}
POO

Concepto de Polimorfismo
Es la capacidad de sobrecargar un método
definido en la clase padre con diferentes argumentos
en la clase hija.

Se refiere a la capacidad de decidir cual método


invocar en tiempo de ejecución.
POO
Ejemplo:


public override Cumpleaños()
{
Edad++;
Console.WriteLine("Incrementada edad de trabajador");
}

Excepciones
Excepcione
s
Las excepciones son el mecanismo
recomendado en la plataforma .NET para
la propagación de errores que se
produzcan durante la ejecución de las
aplicaciones (divisiones por cero, intentos
de lectura de archivos dañados, etc.)
Excepcione
s
La clase System.Exception
Excepcione
s
Captura de excepciones. Instrucción try

try
<instrucciones>
catch (<excepción1>)
<tratamiento1>
catch (<excepción2>)
<tratamiento2>
...
finally
<instruccionesFinally>
Excepcione
Instrucción Catch: s
catch (<tipoExcepción> <nombreVariable>) {
<tratamiento>
}

Nótese que en tanto que todas las excepciones


derivan de System.Exception, para definir una
cláusula catch que pueda capturar cualquier tipo de
excepción basta usar:

catch(System.Exception <nombreObjecto>) {
<tratamiento>
}
Llamadas
asíncronas: Hilos
Hilo
s
La forma de llamar a métodos que hasta ahora se
ha explicado realiza la llamada de manera síncrona, lo
que significa que la instrucción siguiente a la llamada
no se ejecuta hasta que no finalice el método
llamado. Sin embargo, a todo método almacenado en
un objeto delegado también es posible llamarse de
manera asíncrona a través de los métodos del mismo,
lo que consiste en que no se espera a que acabe de
ejecutarse para pasar a la instrucción siguiente a su
llamada sino que su ejecución se deja en manos de un
hilo aparte que se irá ejecutándolo en paralelo con el
hilo llamante.
Hilo
s
C# soporta la ejecución paralela de código a
través de múltiples hilos. Un hilo es una ruta
independiente de ejecución, capaz de
ejecutarse simultáneamente con otros hilos.
Un programa C# arranca en un hilo principal
creado automáticamente por el CLR y el
sistema operativo y puede estar compuesto de
múltiples subprocesos mediante la creación de
hilos adicionales
Hilo
s

El espacio de nombre a es:


using System.Threading;
Hilo
s
Definición del hilo:
Thread hilo1=new Thread(new ThreadStart(funcion1));

Iniciar el hilo:
hilo1.Start();
Hilo
s

Ejemplo practico de hilos


“La dicha de la vida consiste
en: tener siempre algo que
hacer, alguien a quien amar y
alguna cosa que esperar”
Thomas Chalmer

También podría gustarte