Curso de c# Basico
-
Upload
edwards-mosquera -
Category
Documents
-
view
237 -
download
1
description
Transcript of Curso de c# Basico
Softech Proyectos, C.A – Internal use only
Objetivo
Introducir a la audiencia en aspectos básicos en la programación en el lenguaje C# .NET, que sirven de base para la programación de conceptos en Profit Plus Nómina 2.0.
Softech Proyectos, C.A – Internal use only
Tecnología .NET Sintaxis Clases y Objetos Temas Generales Definición e inicialización de variables Operadores Estructuras de Control
Agenda
Softech Proyectos, C.A – Internal use only
¿Qué no es .NET? No es un sistema operativo No es un lenguaje de programación No es un entorno de desarrollo No es un servidor de aplicaciones No es un producto empaquetado que se pueda comprar como tal
Plataforma de desarrollo compuesta por Entorno de ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library) Lenguajes de Programación Compiladores Herramientas de Desarrollo (IDE & Tools) Guías de Arquitectura
La evolución de la plataforma COM
¿Qué es .NET?
Tecnología .NET
Softech Proyectos, C.A – Internal use only
Clases 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)
Son declaradas utilizando la palabra class.
//Definición de la clase CuentaBancaria class CuentaBancaria { //Definición de miembros }
Clases y Objetos
Softech Proyectos, C.A – Internal use only
Objetos Según James Rumbaugh: “Un objeto es un concepto, abstracción o cosa con un significado y límites claros en el problema en cuestión” Según Grady Booch, un objeto posee: Estado: definición de atributos internos del objeto, características. Comportamiento: definición del comportamiento del objeto, acciones que
puede llevar a cabo. Identidad: Cada objeto tiene una identidad única, incluso si su estado es
idéntico al de otro objeto. Un objeto es una instancia de una clase
Clases y Objetos
Softech Proyectos, C.A – Internal use only
Comprendamos mejor lo que es una clase y un objeto Una clase es una definición abstracta de un objeto Define la estructura y el comportamiento compartidos por los objetos Sirve como modelo para la creación de objetos
Los objetos pueden ser agrupados en clases
Clases y Objetos
Clase Objeto
Softech Proyectos, C.A – Internal use only
Métodos Acciones que un objeto puede llevar acabo. Todo método es una función.
public void HacerDeposito(int importe) //No devuelve valor { } public int ObtenerArticulo(int codArticulo) //Devuelve un entero { }
Clases y Objetos
Softech Proyectos, C.A – Internal use only
Constructores Métodos dentro de la clase que son llamados automáticamente cuando se crea una instancia de dicha clase. Tienen el mismo nombre de la clase.
class Persona { public Persona(){...} //Constructor por defecto public Persona(int i){...} /*Constructor con un parámetro*/ }
Clases y Objetos
Softech Proyectos, C.A – Internal use only
Sobrecarga de métodos Varios métodos con el mismo nombre pero diferente firma (parámetros distintos).
public void Persona(int cedula) { } public void Persona(string nombre_completo, bool buscar_exacto) { }
Clases y Objetos
Softech Proyectos, C.A – Internal use only
Métodos estáticos Miembros que no requieren de una instancia para ser invocados. Se los llama métodos “de clase”.
public static void Persona(int importe) { }
Las clase Math es un claro ejemplo de clases con métodos estáticos donde no es necesario hacer uso del new de la clase para poderlo utilizar.
Math.Round(0.4) Resultado 0
Clases y Objetos
Softech Proyectos, C.A – Internal use only
Herencia La 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. Las clases que derivan de otras se definen usando la siguiente sintaxis: class Padre //Clase Base { } class Padre : Hija //Clase Derivada { }
Clases y Objetos
La herencia en programación se refiere a la “clasificación”; es una relación entre clases, además es importante tener claro que la herencia es una relación de clases más que una relación de objetos.
Softech Proyectos, C.A – Internal use only
Terminación de una línea
La línea debe finalizar con un “;”
string nombre = “Juan”; string nombre = “Juan” + “Martinez”; //El punto y coma indica FINAL de cada línea
Temas Generales
Softech Proyectos, C.A – Internal use only
Declaración de bloques
Los bloques de código se declaran entre llaves “{“ “}”
class ClasePrincipal{ public static void Main(string[] args) { Console.WriteLine(“Hola Mundo!"); } }
Temas Generales
Softech Proyectos, C.A – Internal use only
Comentarios de código Los comentarios inician con “//” al principio de la línea Para comentar más de una línea inicia “/*” y finaliza con “*/” Existen 3 formas de comentar el código:
Temas Generales
//Una línea con un sólo renglón string nombre = “Juan”;
/*Una línea con más de un renglón*/ string nombre = “Juan” + “Martinez”;
Forma 1:
Forma 2:
Softech Proyectos, C.A – Internal use only
string nombre = “Juan”; /// <summary> /// Documentación XML que puede ser consumida por otras /// herramientas para mostrar ayuda dinámica o generar /// documentación en varios formatos /// </summary> public class Matematica { /// <summary> /// Calcula la suma de dos números enteros /// </summary> /// <param name="x">El primer operando de la suma</param> /// <param name="y">El segundo operando de la suma</param> /// <returns> La suma entera de ambos operandos</returns> public int Sumar (int x, int y) {return x + y;} }
Comentarios de código
Temas Generales
Cont. formas de comentar el código:
Forma 3:
Softech Proyectos, C.A – Internal use only
Case sensitive Distingue entre mayúsculas y minúsculas
system.console.writeline(“HOLA”); INCORRECTO System.Console.WriteLine(“HOLA”); CORRECTO
Temas Generales
Ctrl+Espacio (Intellisense – Autocompletar) Permite activar el menú de ayuda
Softech Proyectos, C.A – Internal use only
Tipos de datos Categoría Clase Descripción C# Alias Intervalo
Enteros Byte Un entero sin signo (8-bit) byte 0 a 255
SByte Un entero con signo (8-bit) sbyte -128 a 127
Int16 Un entero con signo (16-bit) short -32.768 a 32.767
Int32 Un entero con signo (32-bit) int -2.147.483.648 a 2.147.483.647
Int64 Un entero con signo (64-bit) long -922337203685477508 a 922337203685477507
Punto Flotante Single Un número de punto flotante de simple
precisión (32-bit) float -3,402823e38 a 3,402823e38
Double Un número de punto flotante de doble precisión (64-bit) double -1,79769313486232e308 a
1,79769313486232e308
Decimal Un número decimal de 96-bit decimal ±1.0 × 10e−28 a ±7.9 × 10e28
Lógicos Boolean Un valor booleano (true o false) bool True o false
Otros Char Un caracter Unicode (16-bit) char Símbolos Unicode utilizados en el texto
Object La raíz de la jerarquía de objetos object
String Una cadena de caracteres unicode inmutable y de tamaño fijo string Una secuencia de caracteres
Definición e Inicialización de Variables
Softech Proyectos, C.A – Internal use only
Alcance de miembros Miembro: se refiere a los campos, propiedades, métodos, eventos, clases anidadas, etc. Todo miembro es declarado como PRIVATE por defecto. Modificadores de acceso disponibles:
Private: Accesible sólo por los miembros de la clase
Public: Accesible desde cualquier clase.
Protected: Accesible por los miembros de la clase y los que hereden de ella.
Definición e Inicialización de Variables
Softech Proyectos, C.A – Internal use only
Inicialización de variables
Toda variable debe ser declarada explícitamente antes de ser utilizada.
int MiVariable; //variable local //ERROR: MiVariable NO ha sido inicializada System.Console.WriteLine(MiVariable);
int MiVariable = 0; //variable local //NO HAY ERROR System.Console.WriteLine(MiVariable);
Definición e Inicialización de Variables
Softech Proyectos, C.A – Internal use only
Definición e Inicialización de Variables
Uso del operador New Se utiliza para crear objetos e invocar constructores
Permite inicializar variables en un valor por defecto int i = new int(); //Esta instrucción inicializa i //con el valor 0, que es el predeterminado //para el tipo int y tendría el mismo efecto //que hacer: int i = 0
// Crear objetos usando constructores por defecto: DateTime myDateTime2 = new DateTime(1972,11,4);
Softech Proyectos, C.A – Internal use only
Definición e Inicialización de Variables
Cont. Uso del operador New Tabla con los valores por defecto por tipo de valor
Tipo Valor predeterminado bool false byte 0 char '\0' decimal 0,0M double 0,0D enum El valor producido por la expresión (E)0, donde E es el identificador de la
enumeración. float 0,0F int 0 long 0L sbyte 0 short 0 struct El valor obtenido al asignar los valores predeterminados a los campos de
tipo de valor y el valor null a los campos de tipo de referencia. uint 0 ulong 0 ushort 0
Softech Proyectos, C.A – Internal use only
Conversión de tipos Las conversiones nos permiten que una expresión de un tipo sea tratada como una expresión de otro tipo, dichas conversiones pueden ser:
1.- Implícitas 2.- Explícitas Por ejemplo: La conversión de un tipo int a long es implícita, sin embargo la conversión
de un tipo long a un tipo int es explícita, esto debido a que un int puede ser expresado en formato long sin que haya perdida de precisión en la operación.
char varCaracter;
int varEntera;
varEntera = 67;
varCaracter = varEntera;
/*En este caso, el compilador daría el siguiente
error: “ERROR Nº XXXXX NO SE PUEDE CONVERTIR
IMPLICITAMENTE DE TIPO INT A CHAR”*/
Definición e Inicialización de Variables
Softech Proyectos, C.A – Internal use only
Conversiones Explicitas
- Convert.ToBoolean(val): convierte un valor especificado en un valor booleano equivalente.
Definición e Inicialización de Variables
Uso de comandos de conversión
int num; /*Se crea una variable de tipo entera*/ num=1; /*Se asigna un valor a la variable num*/ bool valor1; /*Se crea una variable de tipo booleana*/ valor1=Convert.ToBoolean(num); //Se realiza la conversión
return valor1; //de entero a booleano
String cadena; /*Se crea una variable de tipo string*/ cadena="1,5"; /*Se asigna un texto a la variable cadena*/ decimal valor1; /*Se crea una variable de tipo decimal*/ valor1=Convert.ToDecimal(cadena);//Se realiza la conversión return valor1; //de string a decimal
- Convert.ToDecimal(val): convierte un valor especificado en un número Decimal.
Softech Proyectos, C.A – Internal use only
Definición e Inicialización de Variables
Cont. Uso de comandos de conversión
- Convert.ToString(val): convierte el valor especificado en la representación de tipo String equivalente.
string texto; /*Se crean dos variable de tipo string*/ string texto1; int valor=600000; /*Se crea una variable de tipo entera*/ texto1="El salario minimo es: ";//Se le asigna u texto a //la variable tipo string texto= texto1 += Convert.ToString(valor); //Convierte el //valor entero a string //y lo concatena //con la variable //tipo string (texto1) return texto;
Conversiones Explicitas
Softech Proyectos, C.A – Internal use only
- Convert.ToChar(val): convierte un valor especificado en un carácter Unicode.
- Convert.ToByte(val): convierte un valor especificado en un entero de 8 bits sin signo.
- Convert.ToDouble(val): convierte un valor especificado en un número de punto flotante de precisión doble.
- Convert.ToInt16(val), Convert.ToInt32(val), Convert.ToInt64(val): convierte un valor especificado en un entero de 16, 32 o 64 bits con signo.
Cont. Uso de comandos de conversión
Definición e Inicialización de Variables
Conversiones Explicitas
Softech Proyectos, C.A – Internal use only
Definición e Inicialización de Variables
Cont. Uso de comandos de conversión
- Convert.ToSByte(val): convierte un valor especificado en un entero de 8 bits con signo.
- Convert.ToSingle(val): convierte un valor especificado en un número de punto flotante de precisión simple.
- Convert.ToUInt16(val), Convert.ToUInt32(val), -Convert.ToUInt64(val): Convierte un valor especificado en un entero de 16, 32 o 64 bits sin signo. A continuación se presenta un ejemplo:
Conversiones Explicitas
Int32 dias = 22; String valor = Math.Round(Convert.ToDecimal(Dias), 2).ToString() + " días";
Softech Proyectos, C.A – Internal use only
Arreglos Se utilizan corchetes [ ] para definir arrays o arreglos.
string[] telefonos; //Definición de un Arreglo de strings telefonos = new string[3]; //De 3 elementos telefonos[0] = “012”; //Seteo del 1er elemento del arreglo telefonos[1] = “345”; //Seteo del 2do elemento del arreglo telefonos[2] = “678”; //Seteo del 3er elemento del arreglo //Definición y asignación directa telefonos = new string[] {“012”,“345”,“678”};
Definición e Inicialización de Variables
Softech Proyectos, C.A – Internal use only
Operadores Aritméticos Descripción C# Ejemplo
Asignación =, +=, -=, *=, /=, %=
var1 = var2 var1 += 2; var1 -= 2;
Adición + var1 = var2 + var3
Sustracción - var1 = var2 - var3
Multiplicación * var1 = var2 * var3
División / var1 = var2 / var3
Negación ! var1 = !var2
Módulo % var1 = var2 % var3
Mayor > var1 > var2
Menor < var1 < var2
Mayor o Igual >= Var1 >= var2
Menor o Igual <= var1 <= var2
Decremento /Incremento ++, -- var1 = var2++; var1 = ++var2; var1 = var2--; var1 = --var2;
Operadores
Softech Proyectos, C.A – Internal use only
Operadores lógicos
Descripción C# Operador lógico Y && Operador lógico O || Negación lógica ! Igual == Distinto !=
Los operadores lógicos son generalmente empleados con valores lógicos (booleanos); estos operadores devuelven un valor booleano.
//Si Hacer1() es True, entonces //Si Hacer1() es False, entonces //NO se evalua Hacer2() //NO se evalua Hacer2() if (Hacer1() || Hacer2()) if (Hacer1() && Hacer2()) { { } }
Nota: Al utilizar los operadores “&” y “|” de manera individual el sistema interpretará que se está trabajando con lógica de bits
Operadores
Softech Proyectos, C.A – Internal use only
Enumerados
enum Color { azul, verde, rojo, amarillo } Color c; c = Color.rojo;
Un enumerado es un tipo de variable cuyos valores posibles que puede tomar son especificados por nosotros.
Estructuras de Control
Softech Proyectos, C.A – Internal use only
Cont. Enumerados Ejemplo de enumerados
Estructuras de Control
Uso
Enum DiasDeLaSemana { Lunes, Martes, ... Domingo }
Int iNumMartes = diasTranscurridos(DateTime.Now.AddMonths(-3), DateTime.Now, DiasDeLaSemana.Martes)
Softech Proyectos, C.A – Internal use only
Sentencias condicionales
Sentencia if cuando hay solo una línea de código:
if (x > 10) HacerAlgo();
Estructuras de Control
Sentencia if cuando hay mas de una línea de código:
if (x < 10) { Hacer1(); Hacer2(); }
Softech Proyectos, C.A – Internal use only
Sentencias condicionales Sentencia if usando un else:
if (x < 10) { Hacer1(); } else { Hacer2(); }
Estructuras de Control
Sentencia if usando mas de un else:
if (x < 10) { Hacer1(); } else if (x > 20) { Hacer2(); } else { Hacer3(); }
Softech Proyectos, C.A – Internal use only
Sentencias condicionales
Sentencia switch: es una instrucción de control que controla múltiples selecciones y enumeraciones pasando el control a una de las instrucciones case de su cuerpo
int caseSwitch = 1; switch (caseSwitch) { case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); break; default: Console.WriteLine("Default case"); break; }
Estructuras de Control
Softech Proyectos, C.A – Internal use only
Sentencia cíclica for/foreach
La sentencia foreach permite recorrer arreglos, colecciones u objetos similares a un arreglo
//Partes: declaración, prueba, acción for (int i=1; i < 10; i++) { }
La sentencia for consta de 3 partes.
string[] nombres = new string[5]; foreach(string varNombre in nombres) { //varNombre es de SOLO LECTURA }
Estructuras de Control
Softech Proyectos, C.A – Internal use only
Arreglos tipo lista Un arreglo tipo lista se define como una variable que permite almacenar un conjunto de datos del mismo tipo en una sola columna y uno o mas renglones. List<string> nombres = new List<string>(); nombres.Add("Juan"); nombres.Add("Carlos"); nombres.Add("Alejandro"); //conteo de la cantidad de nombres Console.WriteLine("Cantidad: "+nombres.Count); //Escribe por pantalla los nombres, utilizando foreach foreach (string a in nombres) { Console.WriteLine("Nombre: " + a); } //Escribe por pantalla los nombres, utilizando for for (int i = 0; i < nombres.Count;i++ ) { Console.WriteLine("Nombre: " + nombres[i]); }
Estructuras de Control
Cualquiera de las dos maneras son correctas
Softech Proyectos, C.A – Internal use only
Sentencia cíclica while y do/while while ejecuta el ciclo hasta que se cumpla una condición.
bool condicion = true; while (condicion == true){ //Vuelve al while con continue, Ejemplo: if (j==10) continue; ..... //En algún momento poner condicion = false // o ejecuta break; Ejemplo: if (j==6) break; }
Do while ejecuta el ciclo hasta que se cumpla una condición.
bool condicion = true; do{ //En algún momento poner condicion = false } while (condicion == true)
Estructuras de Control