39
Softech Proyectos, C.A – Internal use only Profit Plus ® Nómina 2.0 C# Básico para Conceptos

Curso de c# Basico

Embed Size (px)

DESCRIPTION

Curso basico de el lenguaje de programacion C#

Citation preview

Softech Proyectos, C.A – Internal use only

Profit Plus ® Nómina 2.0

C# Básico para Conceptos

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

Softech Proyectos, C.A – Internal use only

Preguntas