0% encontró este documento útil (0 votos)
94 vistas12 páginas

I. Sintaxis Básicas: 1. Tipos de Datos

Este documento describe las sintaxis y conceptos básicos del lenguaje de programación C#, incluyendo tipos de datos primitivos y sus tamaños, declaración e inicialización de variables, operadores aritméticos, conversión de tipos, métodos, operadores de comparación, estructuras de control de flujo como condicionales y bucles, y manejo básico de excepciones. El documento provee una introducción general a los elementos fundamentales de la sintaxis de C# para principiantes.

Cargado por

Katherine
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
94 vistas12 páginas

I. Sintaxis Básicas: 1. Tipos de Datos

Este documento describe las sintaxis y conceptos básicos del lenguaje de programación C#, incluyendo tipos de datos primitivos y sus tamaños, declaración e inicialización de variables, operadores aritméticos, conversión de tipos, métodos, operadores de comparación, estructuras de control de flujo como condicionales y bucles, y manejo básico de excepciones. El documento provee una introducción general a los elementos fundamentales de la sintaxis de C# para principiantes.

Cargado por

Katherine
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

TIOBE: índice de lenguajes mas usados.

I. SINTAXIS BÁSICAS:

1. Tipos de datos:

 Por valor: se almacenan directamente en la variable.

1. Primitivos/Simples:

- Enteros: numérico, puede ser con signo (hace distinción de signo, solo positivos: sbyte, short, int, long)
o sin signo (no hace distinción entre positivo y negativo: byte, ushort, uint, ulong). Cada tipo tiene una
longitud diferente.

- Reales: numérico con decimales (float, double, decimal). Cada tipo tiene una longitud diferente.

- Booleanos: Pueden tomar dos valores (true, false).

- Utf-16/char: caracteres.

2. Estructuras: objeto (tipo básico de todos los objetos), string (arreglo de caracteres), dynamic.

3. Enumerados: Una enumeración o Enum, es un tipo de dato que nos permite crear una variable, que
define todos los posibles valores fijos que pueda contener. Un tipo de enumeración consiste en un
conjunto de constantes denominado lista de enumeradores.

 Por referencia: se almacena una dirección en la memoria de ese tipo de referencia (c lass,record,
delegate, matriz o interface)

Tipos de datos más usados y su tamaño

2. Variables:

Espacio en la memoria del ordenador (RAM) donde se almacenará un valor que podrá cambiar durante la ejecución
de un programa

 Iniciar y declarar:

◦ Declarar: es crear y construir una variable.

Sintaxis: tipo de dato/var + el nombre de la variable en camelCase (int edad).


◦ Iniciar: es asignarle un valor.

Sintaxis: edad = 28; o declarar e iniciar int edad = 28;

 Buenas prácticas:

◦ No comenzar la variable con un guion bajo.

◦ No crear mas de una variable que se diferencie por una letra.

◦ C# es case sentitive: hace diferencia entre mayúscula y minúscula.

◦ Comenzar con letra minúscula, si la variable tiene más de una palabra se debe iniciar con mayúscula
(camelCase).

◦ No usar notación hungara: esta notación agrega la primera letra del tipo de dato usado.

◦ No se puede usar una variable que no ha sido inicializada.

3. Operadores Aritméticos:

 Suma (+): sirve para sumar dos valores numéricos, para la concatenación de string y para operador de
incremento (++ para sumar una unidad a un valor numérico). También se puede conjugar con el “=” para
incrementar x unidades a un valor numérico +=5.

 Resta (-): sirve para restar dos valores numéricos y para operador de decremento (- - para sumar una unidad
a un valor numérico). También se puede conjugar con el “=” para decrementar x unidades a un valor
numérico -=5.

 Multiplicación (*)

 Division (/)

 Residuo/Modulo (%)

4. Operador de asignación (=):

 Asignación de un valor a varias variables:

int edadPersona1; int edadPersona2; int edadPersona3;

edadPersona1 = edadPersona2 = edadPersona3 = 27

 C# no permite la asignación de valores de diferentes tipos a una misma variable: Solamente almacena
valores del mismo tipo del valor con el que fue inicializada.
5. Conversiones:

 Conversión explícita (casting): Se especifica entre parentesis y antes del nombre de la variable, el tipo de
dato al que se va a convertir.

double temperatura = 34.5; int temperaturaMadrid;

temperaturaMadrid = (int)temperatura;

 Conversión implícita: Se hace entre tipos de datos compatibles pero de diferente alcance. Por lo tanto no es
necesario hacer casting.

int habitantesCiudad = 1000; long habitantesCiudad2018 = habitantesCiudad;

Nota: existe tabla de conversiones implícitas en C#.

 Conversión de texto a números (parse):

Sintaxis: tipo de dato numérico al que se va a convertir, seguido de la palabra Parse y entre parentesis la
variable de tipo texto que se va a convertir.

string cantidad = “6”; int numero = int.Parse(cantidad);

6. Constantes:

Espacio en la memoria del ordenador donde se almacenará un valor que no podrá cambiar durante la ejecución del
programa. Se diferencia de las variables porque su valor no cambia.

 Declaración e inicialización:

Sintaxis: palabra reservada const + tipo de dato + nombre de la constante en MAYÚSCULA + valor inicial. Las
constantes debe inicializarse en la misma linea en la que se declaran.

II. MÉTODOS: Estructura de programación

Grupo de sentencias que realizan una tarea, que se agrupan dándole un nombre identificativo. Sirven para realizar
una tarea en concreto, en un momento determinado, siempre y cuando sea llamado.

1. Sintaxis:

 Declaración: tipoDevuelto nombreMetodo (parametros) { cuerpo del método }.


parámetros opcionales: Pueden no existir parámetros o agregar parámetros que puedan ser nulos,
asignándole un valor por defecto. Los parámetros opcionales siempre deben ir al final.

Int Suma(int num1, int num2, int num3 = 0)

 Llamada: nombreMetodo(parametros).

Observación: en C#, no hay distinción entre métodos y funciones.

2. Métodos void: métodos que no devuelven ningún valor (no llevan return), el tipo devuelto es void.

3. Métodos return: obligatoriamente llevan el return, devuelve el tipo de dato especificado.

Cuando el método solo lleva una linea de return, se puede usar el operador de flecha con el valor que se va a
devolver. Esto se le llama expression-bodied

tipoDevolver nombreMetodo (parámetros) => return parametro

4. Ámbito/Alcance:

Todo lo que está dentro de la llave de apertura y de cierre de un método, se denomina “ámbito o alcance del
método”. Y todo lo que esté allí dentro tiene validez solo dentro del método. Las variables declaradas tienen ámbito
local.

 Ámbito de clase: este ámbito lo obtienen las variables que son declaradas fuera de los métodos pero dentro
de una clase. También son definidas como “campos de clase”. Es posible usar dichas variables dentro de
métodos.

5. Sobrecarga de métodos: cuando tienes en el mismo ámbito dos o más metodos con el mismo nombre. Para que
esto suceda los métodos deben tener diferente tipo de parámetros o diferente número de parámetros.

Int Suma(int parametro1, int parametro2) => parametro1 + parametro2

int Suma(int parametro1, int parametro2, int parametro3) => parametro1 + parametro2

III. OPERADORES DE COMPARACIÓN

== Igual que

!= diferente que

< Menor que

>= Menor igual que

> Mayor que


>= Mayor igual que

&& Y lógico

|| O lógico

IV. ESTRUCTURAS DE CONTROL DE FLUJO

Controla el flujo de ejecución, que los programas puedan tomar decisiones

1. Condicional if:

sintaxis:

if (condicion)

Codigo a ejecutar si la condición es true

else if (condicion)

else

Código a ejecutar si la condición es false

2. Switch:

switch(expresion de control)

case expresion constante:

codigo a realizar

break;
default:

codigo a realizar

break;

cada expresión constante debe ser unica

Se usa para int, char, string

3. Bucles: repetir un codigo un numero determinado/indeterminado de veces. Repetir código de forma clara y
sencilla.

 Determinados: FOR, se determina cuantas veces será repetido

 Indeterminados:

- While: mientras, cuando no sepamos la cantidad de veces que se va a repetir.

Sintaxis: while (condicion a evaluar)

codigo a repetir

- Do While: hacer mientras, funciona igual que el while excepto porque ejecuta el código aunque sea una vez
(asi la condición sea false). La condición va al final.

Sintaxis: do { codigo a repetir } while (condicion)

Comparación de string:

int compara = String.Compare(string1, string2, true/false ignora mayuscula y minuscula)

0 = las cadenas son iguales

Numero random:

Random numero = new Random();

int nroAleatorio = numero.Next(0,100)

lo que va entre parentesis indica el rango del número aleatorio que queremos

Leer archivo externo:


System.IO.StreamReader archivo = null

string path = @ “C:ruta/doc.txt”;

archivo = new System.IO.StreamReader(path);

while ((linea == archivo.ReadLine() != null)) mientras haya linea para leer.

V. Excepciones

Error en tiempo de ejecución que se escapa del programador: desbordamiento de pila, acceso a ficheros inexistente,
conexiones a bd interrumpidas.

Es necesario decirle al programa que debe hacer en caso de que se produzca una excepción.

Bloque try (intenta)...catch (captura)

Sintaxis: try { codigo que se intenta }

catch (TipoException){ codigo que se ejecuta si hay excepcion }

catch (TipoException){ codigo que se ejecuta si hay excepcion }

 Se pueden capturar varias excepciones:

FormatException Cuando se espera un número y se ingresa una letra ocurre una excepcion por formato

OverflowException Cuando se ingresa un número muy grande y ha sido declarado como int ocurre una
excepcion por overflow

 Excepciones genericas: por encima de estos tipo esta el SystemException y por encima Exception.

Try {código que se intenta} catch (Exception ex) {ex.Message imprime la descripcion del error}

Primero debe ir las especificas y luegos las genéricas.

 Filtros de excepciones: Cuando se necesita hacer tratamiento diferente por excepcion.

catch(Exception e) when (e.GetType() != typeof (FormatException))

captura las excepciones cuando el tipo es distinto a formato

 Checked: chequee para que no siga adelante.

sintaxis checked{}

 Unchecked: que no chequee esa instrucción


 Throw : Para lanzamiento de excepciones, no continua con la ejecución, hay que saber que tipo de excepción
lanzar.

Sintaxis :

thow new ArgumentOutOfRangeException();

 Finally: codigo que se ejecuta siempre, asi entre en el try o en el catch. Tiene que ver con BD o lectura de
ficheros externos. Por ejemplo cerrar la conexión de BD. Leer a pesar de que el programa caiga.

sintaxis:

try{} catch (Exception e) {} finally {}

VI. POO

1. Que es la POO: consiste en trasladar los objetos de la vida real a códigos de programación. Cada objeto de la vida
real tiene un estado, comportamiento, propiedades.

2. Modificadores de acceso: nos indican desde donde podemos acceder a cada clase.

3. Propiedades de la POO:

 Clase: modelo donde se redacta las características comunes de un grupo de objeto. Plantilla.

Sintaxis: class nombreClase {}

 Objeto: instancia de clase, derivan de una clase. Tienen propiedades (atributos) y comportamiento
(métodos).

Sintaxis:

Circulo miCirculo; //Creación de objeto tipo circulo

miCirculo = new Circulo(); //Instanciar un objeto

Circulo miCirculo2 = new Circulo();

 Modularizacion: dividir un gran programa en partes/trozos/modulos.

 Encapsulamiento: clases bloquean el acceso a su interior para que nadie en su exterior pueda ver su
funcionamiento. Proteger de accesos externos. No se pueda acceder a ella desde otra clase (al menos que sea
necesario).

Se realiza con el modificador de acceso “private” o no se coloca ninguna palabra.


 Constructores: Dar estado inicial. Método que no devuelve nada pero no es void. Lleva el mismo nombre de
la clase. Existe sobrecarga de constructores

Sintaxis: public nombreClase {}

 Getter y Setter:

Setter: establecer propiedades, dar valor.

 Uso de this: se utiliza para eliminar ambiguedades. Para diferenciar cuando se hace referencia a un campo de
clase y a un parametro (se usa para campo de clase).

this.climatizador = climatizador

 Dividir clases largas (split): se utiliza la palabra partial

Sintaxis: partial class nombreClase {}

 Static:

Siempre pertenece a la clase donde fue declarada. Variables de clase. Un objeto no podrá actuar sobre una
variable de clase. Es la clase la que actúa sobre la variable. Si modifica su valor, modifica todas las instancias.
Para llamarlo se invoca el nombre de la clase.

indica que es una "variable de clase", es decir, que su valor es el mismo para todos los
objetos de la clase.

Variable es compartida por todos los objetos.

Sintaxis: privated static int contador = 0; public static int contador();

Para importar: para no mencionar siempre la clase se puede importar como un namespace.

Using static System.Math; Using static System.Console;

 Clase anónima:

sintaxis:
var miVariable = new {nombre = “Juan”}

IV. HERENCIA

Para reutilizar código, jerarquía. Principio de herencia “es-un”. Características y comportamientos comunes entre
entidades van en la cuspide.

1. Sintaxis:

Heredada: class nombreClase : nombreClasePadre

2. Clase object: clase que está por encima de todas las clases por eso heredan sus métodos a todas las clases (Equials,
GetType, ToString)

3. Constructores: implícitamente las subclases obtienen constructor por defecto de clase padre. Se hace con la
instrucción :base.

Para que hereden el constructor definido en la clase padre, se agrega :base(nombreCaballo).

4. Principio de sustitución: “es siempre un”

5. Polimorfismo: cuando hay un método en clase padre que es llamado igual a un método de la clase hijo, invalida al
método heredado.

new: se agrega al método para quitar la advertencia de método repetido. new public void pensar()

virtual: se agrega al método del padre, indica que todas las subclases deben tener un método pensar que modifique
el método pensar. public virtual void pensar()

override: se agrega a la subclase para que sepa que es una sobre escritura del método padre.

Muchas-Formas capacidad de los objetos de comportarse de diferentes formas de acuerdo al contexto.

6. Modificadores de acceso:

 public: se puede acceder desde cualquier lugar.

 private: solo permite el acceso desde la misma clase.

 protected: acceso desde la propia clase y de las que hereda.

V. INTERFACES

Que son: conjuntos de directrices que deben cumplir las clases.


Una clase puede implementar opcionalmente una interface

la interfaz lleva definiciones-directrices de los métodos

Definen el comportamiento a seguir

sintaxis: interface InombreInterface

los métodos solo se declaran, no se desarrollan, no se escribe código

Se debe agregar la interface como clase heredada: esto obliga a que se cumplan lo especificado en la interface

class Caballo : Mamiferos, IMamifero

principio de obligatoriedad

VI. Clases abstractas

 Metodo abstracto: un metodo que solo está declarado no desarrollado. Los métodos abstractos tienen que
estar en clases abstractas.

 Cuando declaramos una clase como abstract estamos indicado que esa clase va a ser utilizada como clase
base de otras clases, ya que ella misma no se puede instanciar.

 Clase abstractas: tienen pocos métodos

Sintaxis:

Clase: abstract class nombreClase

Metodo: public abstract void getNombre()

Las clases que heredan están obligados a desarrollar los métodos que estén en la clase abstracta.

 Sealed clases: clases selladas, una clase de la cual no se puede heredar.

Sintaxis: sealed class nombreClase

Metodos sealed no se pueden modificar.

Principios y buenas practicas para un software de calidad

S – Principio de responsabilidad única (SRP): cada módulo de software debe tener una única razón para
cambiar
O – Principio abierto/cerrado: el código debería estar abierto para extenderlo y para añadirle nuevas
funcionalidades, pero en cambio debería estar cerrado a modificaciones, salvo las modificaciones que se
deban realizar si se encuentra algún error.

(OCP) L – Principio de sustitución de Liskov (LSP): una clase derivada debe poder ser sustituida por su clase
base.

I – Principio de Segregación de Interfaz (ISP): que dice que se han de utilizar interfaces con propósito
específicos o sea que tengan responsabilidades únicas y que se piensen bien y no se hagan interfaces
grandes.

D – Principio de Inversión de Dependencia (DIP): que para conseguirlo se hace uso de la inyección de
dependencias.

También podría gustarte