SlideShare una empresa de Scribd logo
1 de 68
Seminario de Profundización
(Visual Studio NET)
Docente: José Omar Mayorga
Grupo 01
Lenguaje de la programación orientada a
objetos C#
Presentado por:
-Daniel Silva -Andres Pinto
-Ross Tique -Oscar Loaiza
-Edison Caro
Historia de C#
C# es un lenguaje de orientado a objetos diseñado por
Microsoft en 1998. Sus principales creadores fueron Scott
WilTamuth y Anders Hejlsberg.
En Julio de 2000, durante la Conferencia de Desarrolladores
profesionales, el lenguaje llamado C-like Object
Oriented Language fue renombrado C# por razones de
registro
C# apareció en el 2001 con un Sistema Operativo
Multiplataforma.
C# combina los mejores elementos de C++, Java, Visual Basic
Durante el desarrollo del .NET Framework, sus bibliotecas
de clases fueron escritas mediante un compilador de
código administrado Simple Managed C (SMC).
Anders Hejlsberg también reconocido por diseñar el lenguaje
TURBO PASCAL y la herramienta RAD DELPHI.
Actualmente la versión más moderna de C# es la 6.0.
El nombre de C# fue inspirado por la notación musical donde
la almohadilla (#) indica que la nota escrita debe hacerse un
semitono más alto en el tono. Por los tanto C# es un
“semitono” mas alto que C ++
Características principales
Sencillez de uso: C# elimina muchos elementos añadidos por
otros lenguajes y que facilitan su uso y comprensión
Modernidad: Al ser C# un lenguaje de última generación,
incorpora elementos que se ha demostrado a lo largo del
tiempo que son muy útiles para el programador.
Orientado a componentes: La propia sintaxis de C# incluye
elementos propios del diseño de componentes que otros
lenguajes tienen que simular. La sintaxis de C# incluye
por ejemplo formas de definir propiedades, eventos y
atributos
Orientado a objetos: C# como lenguaje de última de
generación , y de propósito general, es orientado a
objetos. C# no permite la inclusión de funciones ni
variable globales que no están incluidos en definición de
tipo. Además, C# soporta todas las características del
paradigma de la programación orientada a objetos, como
son la encapsulación, la herencia y el polimorfismo
Recolección de basura: Todos los lenguajes incluidos en la
plataforma .NET tiene a su disposición el recolector de
basura del CLR. Esto implica que no es necesario incluir
instrucciones de destrucción de objetos en el lenguaje
Seguridad de tipos: C# incluye mecanismos de control de
acceso a tipos de datos, lo que garantiza que no se
produzcan errores difíciles de detectar como un acceso a
la memoria de ningún objeto
Instrucciones seguras: Para Evitar errores comunes cómo se
producían programando en otros lenguajes, en C# se han
impuesto una serie de restricciones en el uso de
instrucciones de control más comunes. Por ejemplo en la
evaluación de toda la condición ha de ser una expresión
condicional y no aritmética
Unificación de Tipos: En C# todos los tipos derivan de una
superclase común llamada System.Object, por lo que
automáticamente heredarán todos los miembros definidos en
esta clase. Es decir, son objetos. A diferencia de Java,
en C# esta característica también se aplica para los
tipos básicos
Extensión de los operadores básicos: Para facilitar la
legibilidad de código y conseguir que los nuevos tipos de
datos que se definan a través de las estructuras estén en
el mismo nivel que los elementos predefinidos en el
lenguaje, se permite definir el significado de la mayoría
de los operadores (Incluidos el de la conversación),
cuando se aplique a diferentes tipos de objetos.
Extensión de modificadores: C# ofrece, a través de los
atributos, la posibilidad de añadir a los metadatos del
módulo resultante de la compilación de cualquier fuente
información adicional a la generada por el compilador que
luego podrá ser consultada en tiempo de ejecución a
través de la biblioteca de reflexión de .NET.
Eficiente: En C#, todo el código incluye numerosas
restricciones para garantizar su seguridad, no
permitiendo el uso de punteros. Sin embargo y a
diferencia de java, existen modificadores para saltarse
esta restricciones, pudiendo manipular objetos a traves
de punteros
Compatible: Para facilitar la migración de programadores de
C++ o Java a C#, no solo se mantiene una sintaxis muy
similar a la de los dos anteriores lenguajes, si no que
el CLR también ofrece la posibilidad de acceder a codigo
nativo escrito en funciones sueltas no orientadas a
objetos, tales como las DLLs de la API de Win32.
Paradigmas de C#C# es un lenguaje multiparadigma que incluye hasta 7
diferentes paradigmas los cuales son:
Estructurado: Es una técnica para escribir programas de una
manera clara para los que utilizan únicamente 3
estructuras:
❖Secuencia:Las instrucciones se ejecutan por orden
❖Selección: Que se compruebe una instrucción o un conjunto
segun una condicion y tomará uno de los caminos para
ejecutarse
❖Iteración: Que se repita la ejecución de una instruccion
mientras se compla una condicion
● Imperativo: Describe la programación en términos del
estado del programa y sentencias que cambian dichos
estados. Los programas imperativos no son más que un
conjunto de instrucciones que le indican a la computadora
cómo realizar una tarea.
● Programación Orientada a Objetos: Usa objetos y sus
restricción para el diseño de programas. esta basado en
varias técnicas las cuales son:
❖Herencia: Las clases se relacionan entre si teniendo
cierta jerarquía de clasificación
❖Abstracción: Los objetos en el sistema sirven como modelo
de un agent abstracto que puede realizar el trabajo,
informar, y cambiar su estado y comunicarse con otros
objetos sin revelar como se implementan estas
❖Polimorfismo: Son los comportamientos diferentes,
asociados a objetos distintos pueden compartir el mismo
nombre, al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se esté
usando.
❖Encapsulamiento: Es reunir todos los elementos que puedan
considerarse pertenecientes a una misma entidad al mismo
nivel de abstracción
Programación dirigida a eventos
la estructura como la ejecución de los programas van
determinados por los sucesos que ocurran en el sistema,
definidos por el usuario o que ellos mismos provoquen. (a
diferencia de secuencial o estructurada donde el programador
decide en cierta forma el flujo del programa, aquí es el
usuario quien dirige el flujo).
Programación genérica
Está centrada en los algoritmos que en los datos la idea de
esta forma de programar pretende generalizar las funciones
utilizadas y puedan ser usadas en más de una ocasión.
Reflexion
Es la capacidad que tiene un programa de ordenador para
observar y opcionalmente modificar su estructura de alto
nivel.
Entornos de desarrollo
Visual Estudio: Soporta múltiples lenguajes de programación:
C#, C++, Visual Basic.NET, F#, Java, PHP.
MonoDevelop: Entorno de desarrollo integrado libre y gratuito
diseñado primordialmente para C# y otros lenguajes .NET
ASPECTOS LÉXICOS
COMENTARIO: es texto que incluido en el código fuente
de un programa con la idea de facilitar su legibilidad a los
programadores y cuyo contenido es, por defecto, completamente
ignorado por el compilador.
Los comentarios son útiles para incluir notas personales o
destinadas a otros programadores.
// Hola Mundo! Programa en C#
/* "Hola Mundo!" Programa en C#.
De esta manera se puede ingresar un comentario
que tenga más de una línea, en caso de ser necesario */
IDENTIFICADORES: Es el nombre con el que
identificamos algún elemento de nuestro código, ya sea una
clase, una variable, un método, etc.
Un identificador será una secuencia de cualquier número de
caracteres alfanuméricos –incluidas vocales acentuadas y
eñes- tales que el primero de ellos no sea un número.
Por ejemplo,identificadores válidos serían:
Arriba, caña, C3P0,áëÎò, etc…
pero no lo serían:
3com, 127, etc...
PALABRAS RESERVADAS:
Las palabras reservadas son identificadores reservados
predefinidos que tienen un significado especial y no
se pueden utilizar como identificadores en sus
programas, excepto si llevan delante el carácter @
como prefijo.
Así, por ejemplo @for es un identificador válido, pero
no for ya que es una palabra reservada.
class @class
{
static void @static(bool @bool)
{
if (@bool)
Console.WriteLine("cierto");
else
Console.WriteLine("falso");
}
}
LITERALES: Un literal es la representación
explícita de los valores que pueden tomar los tipos
básicos del lenguaje. A continuación se explica cuál es
la sintaxis con que se escriben
los literales en C# desglosándolos según el tipo de
valores que representan:
*Literales enteros
Un número entero se puede representar en C# tanto en
formato decimal como hexadecimal. En el primer caso
basta escribir los dígitos decimales (<0-9) del número
unos tras otros, mientras que en el segundo hay que
preceder los dígitos hexadecimales (0-9, a-f, A-F) con
el prefijo 0x. En ambos casos es posible preceder el
número de los operadores + ó – para indicar si es
positivo o negativo, aunque si no se pone nada se
considerará que es positivo. Ejemplos de literales
enteros son 0, 5, +15, -23, 0x1A, -0x1a, etc
*Literales reales:
Los números reales se escriben de forma similar a los
enteros, aunque sólo se pueden escribir en forma
decimal y para separar la parte entera de la real usan
el tradicional punto decimal (carácter .)
Ejemplo: 0.0, 5.1, -5.1, +15.21
*Literales lógicos:
Los únicos literales lógicos válidos son true y false,
que respectivamente representan los valores lógicos
cierto y falso.
*Literales de carácter:
Prácticamente cualquier carácter se puede representar
encerrándolo entre comillas simples. Por ejemplo, 'a'
(letra a), ' ' (carácter de espacio), '?' (símbolo de
interrogación), etc
*Literales de cadena:
No es más que una secuencia de caracteres encerrados
entre comillas dobles.
Por ejemplo ″Hola, mundo″, ″camión″,
*Literal nulo:
es un valor especial que se representa en C# con la
palabra reservada null y se usa como valor de las
variables de objeto no inicializadas para así indicar
que contienen referencias nulas.
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.
*Operaciones aritméticas:
Los operadores aritméticos incluidos en C# son los
típicos de suma (+), resta (-), producto (*), división
(/) y módulo (%) También se incluyen operadores de
“menos unario” (–) y “más unario” (+)
Relacionados con las operaciones aritméticas se
encuentran un par de operadores llamados checkedy
unchecked que permiten controlar si se desea detectar
los desbordamientos que puedan producirse si al
realizar este tipo de operaciones el resultado es
superior a la capacidad del tipo de datos de sus
operandos. Estos operadores se usan así:
checked (<expresión Aritmética>)
unchecked(<expresión Aritmética>)
*Operaciones lógicas:
&& y & (and), || y | (or), ! (not) y ^ (xor)
*Operaciones relacionales:
Se han incluido los tradicionales operadores de
igualdad (==), desigualdad (!=), “mayor que” (>),
“menor que” (<), “mayor o igual que” (>=) y “menor o
igual que” (<=)
*Operaciones de asignación:
Para realizar asignaciones se usa en C# el operador =,
operador que además de realizar la asignación que se
le solicita devuelve el valor asignado.
*Operaciones con cadenas:
Para realizar operaciones de concatenación de cadenas
se puede usar el mismo operador que para realizar
sumas, ya que en C# se ha redefinido su significado
para que cuando se aplique entre operandos que sean
cadenas o que sean una cadena y un carácter lo que
haga sea concatenarlos. Por ejemplo, ″Hola″+″ mundo″
devuelve ″Hola mundo″, y ″Hola mund″ + ′o′ también.
CLASES
Una clase es la definición de las características concretas
de un determinado tipo de objetos. Es decir, de cuáles son
los datos y los métodos de los que van a disponer todos los
objetos de ese tipo.
La sintaxis básica para definir una clase es la que a
continuación se muestra:
class <nombreClase> {
<miembros>
}
CAMPOS
Un campo es un dato común a todos los objetos de una
determinada clase. Para definir cuáles son los campos de los
que una clase dispone se usa la siguiente sintaxis dentro de
la zona señalada como <miembros> en la definición de la
misma:
<tipoCampo> <nombreCampo>;
HERENCIA
Las clases que derivan de otras se definen usando la
siguiente sintaxis:
class <nombreHija>:<nombrePadre>
{
<miembrosHija>
}
Ejemplo
class Trabajador:Persona
{
public int Sueldo;
public Trabajador(string nombre, int edad, string nif, int
sueldo) : base(nombre, edad, nif)
{
Sueldo = sueldo;
}
}
ESPACIOS DE NOMBRES
Constituye una forma lógica de organizar y estructura
nuestro código de forma que se puede organizar la
funcionalidad con un determinado sentido semántico.
namespace EspacioEjemplo
{
namespace EspacioEjemplo2
{
class ClaseEjemplo
{}
}
}
Sentencia using
La Directiva Using Tiene Tres Usos
• Para permitir el uso de tipos en un espacio de
nombres de manera que no tenga que calificar el uso de
un tipo en dicho espacio de nombres:
C#
using System.Text;
• Para permitirle acceder a los miembros estáticos de
un tipo sin tener que calificar el acceso con el
nombre del tipo:
C#
using static System.Math;
• Para crear un alias para un espacio de nombre o un
tipo. Esto se denomina una directiva de alias using.
C#
using Project = PC.MyCompany.Project;
Los espacios de nombres se utilizan en gran medida en
los programas de C# de dos maneras.
Primero, las clases de .NET Framework utilizan los
espacios de nombres para organizar sus diversas
clases.
Segundo, declarar sus propios espacios de nombres
permite ayudar a controlar el ámbito de la clase y los
nombres de método en proyectos de programación de
mayor tamaño..
VARIABLES Y TIPOS DATOS
VARIABLE:Una variable puede verse simplemente como
un almacén de objetos de un determinado tipo al que se
le da un cierto nombre. Por tanto, para definir una
variable sólo hay que decir cuál será el nombre que se
le dará y cuál será el tipo de datos que podrá
almacenar.
Los tipos de datos básicos son los siguientes:
String: Representa una cadena de caracteres.
Int: Representa un entero sin decimal.
Float: Representa un número con parte decimal o en
coma flotante de 32 bits.
Boolean: Representa un valor lógico.
Double: Representa un valor numérico en coma flotante
de 64 bits.
Objetc: Representa un objeto.
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.
La sintaxis que se usa en C# para definir los métodos es la
siguiente:
<tipoDevuelto> <nombreMétodo> (<parametros>) {
<instrucciones>
}
Propiedades
Una propiedad es una mezcla entre el concepto de campo y el
concepto de método.
● Ofrecen un mecanismo flexible para leer, escribir o
calcular los valores de campos privados.
● Son denominados descriptores de acceso
● Tienen acceso a los datos con facilidad, flexibilidad y
seguridad de los métodos
● Comúnmente utilizadas para exponer y controlar
variables privadas
● Las propiedades que se implementan automáticamente
usan un campo oculto que sólo es accesible vía
propiedad.
Para definir una propiedad se usa la siguiente sintaxis:
<tipoPropiedad> <nombrePropiedad>
{
set
{
<codigoEscritura>
}
get
{
<codigoLectura>
}
}
El orden en que aparezcan los bloques de código set
(propiedades de solo lectura) y get (propiedades de solo
escritura) es irrelevante.
Es posible definir propiedades que solo tengan el bloque get
o que solo tengan el bloque set; lo que no es válido es
definir propiedades que no incluyan ninguno de los dos
bloques.
Las propiedades también poseen polimorfismo al igual que los
métodos
Estructuras
Una estructura es un tipo especial de clase pensada para
representar objetos ligeros.
Es un tipo de valor que se suele utilizar para encapsular
pequeños grupos de variables relacionadas.
Las estructuras pueden contener:
Constructores
Constantes
Campos
Métodos
Propiedades
Indizadores
Operadores
Eventos
Tipos anidados
Limitaciones
Dentro de una declaración de estructura, los campos no se
pueden inicializar a menos que se declaren como
constantes o estáticos.
Una estructura no puede declarar un constructor
predeterminado (un constructor predeterminado puede ser
un constructor que no tiene parámetros).
Propiedades
Las estructuras son tipos de valor, mientras que las clases
son tipos de referencias.
A diferencia de las clases, se pueden crear instancias de
las estructuras sin utilizar un operador new.
Las estructuras pueden declarar constantes, pero deben
utilizar parámetros
Una estructura no puede heredar de otra estructura o clase,
ni puede ser la base de una clase. Todas las estructuras
heredan directamente de System.ValueType, que hereda de
System.Object.
Una estructura puede implementar interfaces
ENUMERACIONES
Una enumeración o tipo enumerado es un tipo especial de
estructura en la que los literales de los valores que pueden
tomar sus objetos se indican explícitamente al definirla.
A los números que los métodos interpretan con significados
específicos se les suele denominar números mágicos su
utilización tiene los inconvenientes de que dificulta la
legibilidad del código y su escritura.
Una mejor alternativa para el método anterior es que tome un
parámetro de tipo Tamaño.
Estos literales también pueden ser usados por herramientas de
documentación, depuradores u otras aplicaciones para
sustituir números mágicos y mostrar textos muchos más
legibles.
Otra ventaja de usar enumeraciones frente a números mágicos
es que éstas participan en el mecanismo de comprobación de
tipos de C# y el CLR.
Sintaxis:
enum <nombreEnumeracion> : <tipoBase>
{
<literales>
}
Una enumeración es un tipo especial de estructura que sólo
puede tener como miembros campos públicos constantes y
estáticos.
El tipo por defecto de las constantes que forman una
enumeración es int, aunque puede dárseles cualquier otro tipo
básico entero.
Uso de enumeraciones
Las variables de tipos enumerados se definen como cualquier
otra variable (sintaxis <nombreTipo> <nombreVariable>).
Los literales de una enumeración son constantes públicas y
estáticas.
Los literales de una enumeración son constantes de tipos
enteros y las variables de tipo enumerado son variables del
tipo entero base de la enumeración.
INTERFACES
Una interfaz es la definición de un conjunto de métodos para
los que no se da implementación, sino que se les define de
manera similar a como se definen los métodos abstractos. Es
más, una interfaz puede verse como una forma especial de
definir clases que sólo cuenten con miembros abstractos.
La sintaxis general que se sigue a la hora de definir una
interfaz es:
<modificadores> interface <nombre>:<interfacesBase> {
<miembros>
}
INSTRUCCIONES
Es toda acción que se pueda realizar en el cuerpo de un
método, como definir variables, llamar métodos y realizar
diferentes asignaciones dentro del código.
{
<ListaInstrucciones>
}
Instrucciones Básicas
Variables Locales
las cuales son variables que se definen en el cuerpo de los
métodos y sólo son accesibles desde dichos cuerpos.
Asignación
Es simplemente una Instrucción mediante la que se indica un
valor en un dato.
Llamadas a métodos
Consiste en solicitar la ejecución de sus instrucciones
asociadas dando a sus parámetros ciertos valores.
Instrucción Nula
Es una instrucción que no realiza nada en absoluto. su
sintaxis consiste en escribir un simple punto y coma para
representarla
Instrucciones Condicionales
Son instrucciones que permiten ejecutar bloques de
instrucciones sólo si se da una determinada condición.
Instrucción If
Permite ejecutar ciertas instrucciones sólo si se da una
determinada Condición.
if (<Condición>)
<InstruccionesIf>
else
<InstruccionesElse>
Instrucción Switch
Permite ejecutar unos u otros bloques de instrucciones según
el valor de una cierta expresión.
switch()
{
case <valor1>: <bloque1>
<siguienteAcción>
case <valor2>: <bloque2>
<siguienteAcción>
…
default: <bloqueDefault>
<siguienteAcción>
}
Instrucciones Iterativas
Son instrucciones que permiten ejecutar repetidas veces una
instrucción o un bloque de instrucciones mientras se cumpla
una condición.
Instrucción While
Permite ejecutar un bloque instrucciones mientras se da una
cierta instrucción.
while(<condición>)
<instrucciones>
Instrucción Do While
La instrucción do...while es una variante del while que se
usa así:
do
<instrucciones>
while(<condición>);
Instrucción for
la instrucción for es una variante de while que permite
reducir el código necesario para escribir los tipos de bucles
más comúnmente usados en programación.
for(<inicialización>;<condición>;<modificación>)
<instrucciones>
Instrucción foreach
La instrucción foreach es una variante del for pensada
especialmente para compactar la escritura de códigos donde se
realice algún tratamiento a todos los elementos de una
colección, que suele un uso muy habitual de for en los
lenguajes de programación que lo incluyen.
foreach(<tipoelemento><elemento>in<colección>)
<instrucciones>
Instrucciones De Excepciones
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. Básicamente es un objeto
derivado de System.Exception que se genera cuando en tiempo
de ejecución se produce algún error y que contiene
información sobre el mismo.
Instrucciones de Salto
Permiten ejecutar variar el orden normal en que se ejecutan
las instrucciones de un programa, que consiste en ejecutarlas
unas tras otra en el mismo orden en que se hubiesen escrito
en el fuente.
➔Instrucción Break
➔Instrucción Continue
➔Instrucción Return
➔Instrucción Goto
➔Instrucción Throw
Otras Instrucciones
➔Instrucciones Checked y Unchecked
➔permiten controlar la forma en que tratan los
desbordamientos que ocurran durante la realización de
operaciones aritméticas con tipos de básico entero.
➔Instrucciones Lock
➔Es útil en aplicaciones concurrentes donde múltiples
hilos pueden estar accediendo simultáneamente a un mismo
recurso.
CÓDIGO INSEGURO
Es todo aquel fragmento de código en C# dentro del cual es
posible hacer uso de punteros.
Uso puntero en C# es una variable que es capaz de almacenar
direcciones de memoria. Generalmente suele usarse para
almacenar direcciones que almacenan objetos, por lo que en
esos casos su significado es similar al de variables normales
de tipo de referencia.

Más contenido relacionado

La actualidad más candente

Grafos propuestos
Grafos propuestosGrafos propuestos
Grafos propuestosmenamigue
 
Grafos eulerianos
Grafos eulerianosGrafos eulerianos
Grafos eulerianosborisunefa
 
encapsulamiento
encapsulamientoencapsulamiento
encapsulamientozeta2015
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
BOBINAS Y RESISTENCIAS
BOBINAS  Y  RESISTENCIASBOBINAS  Y  RESISTENCIAS
BOBINAS Y RESISTENCIASDiego Zerpa
 
Características de la onda senoidal
Características de la onda senoidal Características de la onda senoidal
Características de la onda senoidal vr3220
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Proyecto 4- laboratorio de electronica 1
Proyecto 4- laboratorio de electronica 1Proyecto 4- laboratorio de electronica 1
Proyecto 4- laboratorio de electronica 1Veronica Montilla
 
Ejercicios de grafos
Ejercicios de grafosEjercicios de grafos
Ejercicios de grafosTere Suarez
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebTensor
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fetVelmuz Buzz
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Propiedades de la convolución
Propiedades de la convoluciónPropiedades de la convolución
Propiedades de la convoluciónYolanda Mora
 
Mapa conceptual de Grafos Euleriano y Hamiltoniano
Mapa conceptual de Grafos Euleriano y HamiltonianoMapa conceptual de Grafos Euleriano y Hamiltoniano
Mapa conceptual de Grafos Euleriano y HamiltonianoJuan Ojeda
 

La actualidad más candente (20)

Grafos propuestos
Grafos propuestosGrafos propuestos
Grafos propuestos
 
Circuitos rc y rl
Circuitos rc y rlCircuitos rc y rl
Circuitos rc y rl
 
Mosfet
MosfetMosfet
Mosfet
 
Tema grafos
Tema grafosTema grafos
Tema grafos
 
Grafos eulerianos
Grafos eulerianosGrafos eulerianos
Grafos eulerianos
 
encapsulamiento
encapsulamientoencapsulamiento
encapsulamiento
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
BOBINAS Y RESISTENCIAS
BOBINAS  Y  RESISTENCIASBOBINAS  Y  RESISTENCIAS
BOBINAS Y RESISTENCIAS
 
Características de la onda senoidal
Características de la onda senoidal Características de la onda senoidal
Características de la onda senoidal
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Proyecto 4- laboratorio de electronica 1
Proyecto 4- laboratorio de electronica 1Proyecto 4- laboratorio de electronica 1
Proyecto 4- laboratorio de electronica 1
 
Ejercicios de grafos
Ejercicios de grafosEjercicios de grafos
Ejercicios de grafos
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la Web
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fet
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Unidad 5. tecnología de redes
Unidad 5. tecnología de redesUnidad 5. tecnología de redes
Unidad 5. tecnología de redes
 
Propiedades de la convolución
Propiedades de la convoluciónPropiedades de la convolución
Propiedades de la convolución
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
Mapa conceptual de Grafos Euleriano y Hamiltoniano
Mapa conceptual de Grafos Euleriano y HamiltonianoMapa conceptual de Grafos Euleriano y Hamiltoniano
Mapa conceptual de Grafos Euleriano y Hamiltoniano
 
Los Flip Flops
Los Flip FlopsLos Flip Flops
Los Flip Flops
 

Similar a Lenguaje de la programación orientada a objetos c#

Reporte de visual c#(jose gonzalo estrada lopez)
Reporte de visual c#(jose gonzalo estrada lopez)Reporte de visual c#(jose gonzalo estrada lopez)
Reporte de visual c#(jose gonzalo estrada lopez)josegonzalo130
 
C# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualC# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualFernando Jose
 
Reporte_de_microsoft_visual_c#
Reporte_de_microsoft_visual_c#Reporte_de_microsoft_visual_c#
Reporte_de_microsoft_visual_c#José García
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#XM Filial de ISA
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaEstudiantes ISI_UCA
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion cChavez Raul
 
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)Fidel_Angel
 
Curso de lenguaje C
Curso de lenguaje CCurso de lenguaje C
Curso de lenguaje Crcc1964
 
C ++ Estatutos ciclos
C ++ Estatutos ciclosC ++ Estatutos ciclos
C ++ Estatutos ciclosernest1960
 

Similar a Lenguaje de la programación orientada a objetos c# (20)

Reporte de visual c#(jose gonzalo estrada lopez)
Reporte de visual c#(jose gonzalo estrada lopez)Reporte de visual c#(jose gonzalo estrada lopez)
Reporte de visual c#(jose gonzalo estrada lopez)
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
Introducción al c#
Introducción al c#Introducción al c#
Introducción al c#
 
C# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualC# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptual
 
C#
C#C#
C#
 
Reporte_de_microsoft_visual_c#
Reporte_de_microsoft_visual_c#Reporte_de_microsoft_visual_c#
Reporte_de_microsoft_visual_c#
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
 
C++
C++C++
C++
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky Bonilla
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Todo sobre C#
Todo sobre C#Todo sobre C#
Todo sobre C#
 
Informe lpi
Informe lpiInforme lpi
Informe lpi
 
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
 
Lenguaje c 1
Lenguaje c 1Lenguaje c 1
Lenguaje c 1
 
introduccion a C
introduccion a Cintroduccion a C
introduccion a C
 
Tutor de programacion c
Tutor de programacion cTutor de programacion c
Tutor de programacion c
 
Cursode c
Cursode cCursode c
Cursode c
 
Curso de lenguaje C
Curso de lenguaje CCurso de lenguaje C
Curso de lenguaje C
 
C ++ Estatutos ciclos
C ++ Estatutos ciclosC ++ Estatutos ciclos
C ++ Estatutos ciclos
 

Más de Juan Carlos Prieto (6)

Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
patron de diseño MVVMo.pptx
patron de diseño MVVMo.pptxpatron de diseño MVVMo.pptx
patron de diseño MVVMo.pptx
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
Consultas linq
Consultas linqConsultas linq
Consultas linq
 
Presentacion wpf
Presentacion wpfPresentacion wpf
Presentacion wpf
 
Intro c sharp
Intro c sharpIntro c sharp
Intro c sharp
 

Último

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 

Último (16)

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 

Lenguaje de la programación orientada a objetos c#

  • 1. Seminario de Profundización (Visual Studio NET) Docente: José Omar Mayorga Grupo 01
  • 2. Lenguaje de la programación orientada a objetos C# Presentado por: -Daniel Silva -Andres Pinto -Ross Tique -Oscar Loaiza -Edison Caro
  • 3. Historia de C# C# es un lenguaje de orientado a objetos diseñado por Microsoft en 1998. Sus principales creadores fueron Scott WilTamuth y Anders Hejlsberg. En Julio de 2000, durante la Conferencia de Desarrolladores profesionales, el lenguaje llamado C-like Object Oriented Language fue renombrado C# por razones de registro C# apareció en el 2001 con un Sistema Operativo Multiplataforma. C# combina los mejores elementos de C++, Java, Visual Basic
  • 4. Durante el desarrollo del .NET Framework, sus bibliotecas de clases fueron escritas mediante un compilador de código administrado Simple Managed C (SMC). Anders Hejlsberg también reconocido por diseñar el lenguaje TURBO PASCAL y la herramienta RAD DELPHI. Actualmente la versión más moderna de C# es la 6.0.
  • 5. El nombre de C# fue inspirado por la notación musical donde la almohadilla (#) indica que la nota escrita debe hacerse un semitono más alto en el tono. Por los tanto C# es un “semitono” mas alto que C ++
  • 6. Características principales Sencillez de uso: C# elimina muchos elementos añadidos por otros lenguajes y que facilitan su uso y comprensión Modernidad: Al ser C# un lenguaje de última generación, incorpora elementos que se ha demostrado a lo largo del tiempo que son muy útiles para el programador. Orientado a componentes: La propia sintaxis de C# incluye elementos propios del diseño de componentes que otros lenguajes tienen que simular. La sintaxis de C# incluye por ejemplo formas de definir propiedades, eventos y atributos
  • 7. Orientado a objetos: C# como lenguaje de última de generación , y de propósito general, es orientado a objetos. C# no permite la inclusión de funciones ni variable globales que no están incluidos en definición de tipo. Además, C# soporta todas las características del paradigma de la programación orientada a objetos, como son la encapsulación, la herencia y el polimorfismo Recolección de basura: Todos los lenguajes incluidos en la plataforma .NET tiene a su disposición el recolector de basura del CLR. Esto implica que no es necesario incluir instrucciones de destrucción de objetos en el lenguaje
  • 8. Seguridad de tipos: C# incluye mecanismos de control de acceso a tipos de datos, lo que garantiza que no se produzcan errores difíciles de detectar como un acceso a la memoria de ningún objeto Instrucciones seguras: Para Evitar errores comunes cómo se producían programando en otros lenguajes, en C# se han impuesto una serie de restricciones en el uso de instrucciones de control más comunes. Por ejemplo en la evaluación de toda la condición ha de ser una expresión condicional y no aritmética
  • 9. Unificación de Tipos: En C# todos los tipos derivan de una superclase común llamada System.Object, por lo que automáticamente heredarán todos los miembros definidos en esta clase. Es decir, son objetos. A diferencia de Java, en C# esta característica también se aplica para los tipos básicos Extensión de los operadores básicos: Para facilitar la legibilidad de código y conseguir que los nuevos tipos de datos que se definan a través de las estructuras estén en el mismo nivel que los elementos predefinidos en el lenguaje, se permite definir el significado de la mayoría de los operadores (Incluidos el de la conversación), cuando se aplique a diferentes tipos de objetos.
  • 10. Extensión de modificadores: C# ofrece, a través de los atributos, la posibilidad de añadir a los metadatos del módulo resultante de la compilación de cualquier fuente información adicional a la generada por el compilador que luego podrá ser consultada en tiempo de ejecución a través de la biblioteca de reflexión de .NET. Eficiente: En C#, todo el código incluye numerosas restricciones para garantizar su seguridad, no permitiendo el uso de punteros. Sin embargo y a diferencia de java, existen modificadores para saltarse esta restricciones, pudiendo manipular objetos a traves de punteros
  • 11. Compatible: Para facilitar la migración de programadores de C++ o Java a C#, no solo se mantiene una sintaxis muy similar a la de los dos anteriores lenguajes, si no que el CLR también ofrece la posibilidad de acceder a codigo nativo escrito en funciones sueltas no orientadas a objetos, tales como las DLLs de la API de Win32.
  • 12. Paradigmas de C#C# es un lenguaje multiparadigma que incluye hasta 7 diferentes paradigmas los cuales son: Estructurado: Es una técnica para escribir programas de una manera clara para los que utilizan únicamente 3 estructuras: ❖Secuencia:Las instrucciones se ejecutan por orden ❖Selección: Que se compruebe una instrucción o un conjunto segun una condicion y tomará uno de los caminos para ejecutarse ❖Iteración: Que se repita la ejecución de una instruccion mientras se compla una condicion
  • 13. ● Imperativo: Describe la programación en términos del estado del programa y sentencias que cambian dichos estados. Los programas imperativos no son más que un conjunto de instrucciones que le indican a la computadora cómo realizar una tarea. ● Programación Orientada a Objetos: Usa objetos y sus restricción para el diseño de programas. esta basado en varias técnicas las cuales son: ❖Herencia: Las clases se relacionan entre si teniendo cierta jerarquía de clasificación ❖Abstracción: Los objetos en el sistema sirven como modelo de un agent abstracto que puede realizar el trabajo, informar, y cambiar su estado y comunicarse con otros objetos sin revelar como se implementan estas
  • 14. ❖Polimorfismo: Son los comportamientos diferentes, asociados a objetos distintos pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. ❖Encapsulamiento: Es reunir todos los elementos que puedan considerarse pertenecientes a una misma entidad al mismo nivel de abstracción
  • 15. Programación dirigida a eventos la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen. (a diferencia de secuencial o estructurada donde el programador decide en cierta forma el flujo del programa, aquí es el usuario quien dirige el flujo).
  • 16. Programación genérica Está centrada en los algoritmos que en los datos la idea de esta forma de programar pretende generalizar las funciones utilizadas y puedan ser usadas en más de una ocasión.
  • 17. Reflexion Es la capacidad que tiene un programa de ordenador para observar y opcionalmente modificar su estructura de alto nivel.
  • 18. Entornos de desarrollo Visual Estudio: Soporta múltiples lenguajes de programación: C#, C++, Visual Basic.NET, F#, Java, PHP. MonoDevelop: Entorno de desarrollo integrado libre y gratuito diseñado primordialmente para C# y otros lenguajes .NET
  • 19. ASPECTOS LÉXICOS COMENTARIO: es texto que incluido en el código fuente de un programa con la idea de facilitar su legibilidad a los programadores y cuyo contenido es, por defecto, completamente ignorado por el compilador. Los comentarios son útiles para incluir notas personales o destinadas a otros programadores.
  • 20. // Hola Mundo! Programa en C# /* "Hola Mundo!" Programa en C#. De esta manera se puede ingresar un comentario que tenga más de una línea, en caso de ser necesario */
  • 21. IDENTIFICADORES: Es el nombre con el que identificamos algún elemento de nuestro código, ya sea una clase, una variable, un método, etc. Un identificador será una secuencia de cualquier número de caracteres alfanuméricos –incluidas vocales acentuadas y eñes- tales que el primero de ellos no sea un número. Por ejemplo,identificadores válidos serían: Arriba, caña, C3P0,áëÎò, etc… pero no lo serían: 3com, 127, etc...
  • 22. PALABRAS RESERVADAS: Las palabras reservadas son identificadores reservados predefinidos que tienen un significado especial y no se pueden utilizar como identificadores en sus programas, excepto si llevan delante el carácter @ como prefijo. Así, por ejemplo @for es un identificador válido, pero no for ya que es una palabra reservada.
  • 23. class @class { static void @static(bool @bool) { if (@bool) Console.WriteLine("cierto"); else Console.WriteLine("falso"); } }
  • 24. LITERALES: Un literal es la representación explícita de los valores que pueden tomar los tipos básicos del lenguaje. A continuación se explica cuál es la sintaxis con que se escriben los literales en C# desglosándolos según el tipo de valores que representan:
  • 25. *Literales enteros Un número entero se puede representar en C# tanto en formato decimal como hexadecimal. En el primer caso basta escribir los dígitos decimales (<0-9) del número unos tras otros, mientras que en el segundo hay que preceder los dígitos hexadecimales (0-9, a-f, A-F) con el prefijo 0x. En ambos casos es posible preceder el número de los operadores + ó – para indicar si es positivo o negativo, aunque si no se pone nada se considerará que es positivo. Ejemplos de literales enteros son 0, 5, +15, -23, 0x1A, -0x1a, etc
  • 26. *Literales reales: Los números reales se escriben de forma similar a los enteros, aunque sólo se pueden escribir en forma decimal y para separar la parte entera de la real usan el tradicional punto decimal (carácter .) Ejemplo: 0.0, 5.1, -5.1, +15.21 *Literales lógicos: Los únicos literales lógicos válidos son true y false, que respectivamente representan los valores lógicos cierto y falso.
  • 27. *Literales de carácter: Prácticamente cualquier carácter se puede representar encerrándolo entre comillas simples. Por ejemplo, 'a' (letra a), ' ' (carácter de espacio), '?' (símbolo de interrogación), etc *Literales de cadena: No es más que una secuencia de caracteres encerrados entre comillas dobles. Por ejemplo ″Hola, mundo″, ″camión″,
  • 28. *Literal nulo: es un valor especial que se representa en C# con la palabra reservada null y se usa como valor de las variables de objeto no inicializadas para así indicar que contienen referencias nulas.
  • 29. 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. *Operaciones aritméticas: Los operadores aritméticos incluidos en C# son los típicos de suma (+), resta (-), producto (*), división (/) y módulo (%) También se incluyen operadores de “menos unario” (–) y “más unario” (+)
  • 30. Relacionados con las operaciones aritméticas se encuentran un par de operadores llamados checkedy unchecked que permiten controlar si se desea detectar los desbordamientos que puedan producirse si al realizar este tipo de operaciones el resultado es superior a la capacidad del tipo de datos de sus operandos. Estos operadores se usan así: checked (<expresión Aritmética>) unchecked(<expresión Aritmética>)
  • 31. *Operaciones lógicas: && y & (and), || y | (or), ! (not) y ^ (xor) *Operaciones relacionales: Se han incluido los tradicionales operadores de igualdad (==), desigualdad (!=), “mayor que” (>), “menor que” (<), “mayor o igual que” (>=) y “menor o igual que” (<=) *Operaciones de asignación: Para realizar asignaciones se usa en C# el operador =, operador que además de realizar la asignación que se le solicita devuelve el valor asignado.
  • 32. *Operaciones con cadenas: Para realizar operaciones de concatenación de cadenas se puede usar el mismo operador que para realizar sumas, ya que en C# se ha redefinido su significado para que cuando se aplique entre operandos que sean cadenas o que sean una cadena y un carácter lo que haga sea concatenarlos. Por ejemplo, ″Hola″+″ mundo″ devuelve ″Hola mundo″, y ″Hola mund″ + ′o′ también.
  • 33. CLASES Una clase es la definición de las características concretas de un determinado tipo de objetos. Es decir, de cuáles son los datos y los métodos de los que van a disponer todos los objetos de ese tipo. La sintaxis básica para definir una clase es la que a continuación se muestra: class <nombreClase> { <miembros> }
  • 34. CAMPOS Un campo es un dato común a todos los objetos de una determinada clase. Para definir cuáles son los campos de los que una clase dispone se usa la siguiente sintaxis dentro de la zona señalada como <miembros> en la definición de la misma: <tipoCampo> <nombreCampo>;
  • 35. HERENCIA Las clases que derivan de otras se definen usando la siguiente sintaxis: class <nombreHija>:<nombrePadre> { <miembrosHija> }
  • 36. Ejemplo class Trabajador:Persona { public int Sueldo; public Trabajador(string nombre, int edad, string nif, int sueldo) : base(nombre, edad, nif) { Sueldo = sueldo; } }
  • 37. ESPACIOS DE NOMBRES Constituye una forma lógica de organizar y estructura nuestro código de forma que se puede organizar la funcionalidad con un determinado sentido semántico. namespace EspacioEjemplo { namespace EspacioEjemplo2 { class ClaseEjemplo {} } }
  • 38. Sentencia using La Directiva Using Tiene Tres Usos • Para permitir el uso de tipos en un espacio de nombres de manera que no tenga que calificar el uso de un tipo en dicho espacio de nombres: C# using System.Text;
  • 39. • Para permitirle acceder a los miembros estáticos de un tipo sin tener que calificar el acceso con el nombre del tipo: C# using static System.Math; • Para crear un alias para un espacio de nombre o un tipo. Esto se denomina una directiva de alias using. C# using Project = PC.MyCompany.Project;
  • 40. Los espacios de nombres se utilizan en gran medida en los programas de C# de dos maneras. Primero, las clases de .NET Framework utilizan los espacios de nombres para organizar sus diversas clases. Segundo, declarar sus propios espacios de nombres permite ayudar a controlar el ámbito de la clase y los nombres de método en proyectos de programación de mayor tamaño..
  • 41. VARIABLES Y TIPOS DATOS VARIABLE:Una variable puede verse simplemente como un almacén de objetos de un determinado tipo al que se le da un cierto nombre. Por tanto, para definir una variable sólo hay que decir cuál será el nombre que se le dará y cuál será el tipo de datos que podrá almacenar.
  • 42. Los tipos de datos básicos son los siguientes: String: Representa una cadena de caracteres. Int: Representa un entero sin decimal. Float: Representa un número con parte decimal o en coma flotante de 32 bits. Boolean: Representa un valor lógico. Double: Representa un valor numérico en coma flotante de 64 bits. Objetc: Representa un objeto.
  • 43. 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. La sintaxis que se usa en C# para definir los métodos es la siguiente: <tipoDevuelto> <nombreMétodo> (<parametros>) { <instrucciones> }
  • 44. Propiedades Una propiedad es una mezcla entre el concepto de campo y el concepto de método. ● Ofrecen un mecanismo flexible para leer, escribir o calcular los valores de campos privados. ● Son denominados descriptores de acceso ● Tienen acceso a los datos con facilidad, flexibilidad y seguridad de los métodos
  • 45. ● Comúnmente utilizadas para exponer y controlar variables privadas ● Las propiedades que se implementan automáticamente usan un campo oculto que sólo es accesible vía propiedad.
  • 46. Para definir una propiedad se usa la siguiente sintaxis: <tipoPropiedad> <nombrePropiedad> { set { <codigoEscritura> } get { <codigoLectura> } }
  • 47. El orden en que aparezcan los bloques de código set (propiedades de solo lectura) y get (propiedades de solo escritura) es irrelevante. Es posible definir propiedades que solo tengan el bloque get o que solo tengan el bloque set; lo que no es válido es definir propiedades que no incluyan ninguno de los dos bloques. Las propiedades también poseen polimorfismo al igual que los métodos
  • 48. Estructuras Una estructura es un tipo especial de clase pensada para representar objetos ligeros. Es un tipo de valor que se suele utilizar para encapsular pequeños grupos de variables relacionadas.
  • 49. Las estructuras pueden contener: Constructores Constantes Campos Métodos Propiedades Indizadores Operadores Eventos Tipos anidados
  • 50. Limitaciones Dentro de una declaración de estructura, los campos no se pueden inicializar a menos que se declaren como constantes o estáticos. Una estructura no puede declarar un constructor predeterminado (un constructor predeterminado puede ser un constructor que no tiene parámetros).
  • 51. Propiedades Las estructuras son tipos de valor, mientras que las clases son tipos de referencias. A diferencia de las clases, se pueden crear instancias de las estructuras sin utilizar un operador new. Las estructuras pueden declarar constantes, pero deben utilizar parámetros Una estructura no puede heredar de otra estructura o clase, ni puede ser la base de una clase. Todas las estructuras heredan directamente de System.ValueType, que hereda de System.Object. Una estructura puede implementar interfaces
  • 52. ENUMERACIONES Una enumeración o tipo enumerado es un tipo especial de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente al definirla. A los números que los métodos interpretan con significados específicos se les suele denominar números mágicos su utilización tiene los inconvenientes de que dificulta la legibilidad del código y su escritura.
  • 53. Una mejor alternativa para el método anterior es que tome un parámetro de tipo Tamaño. Estos literales también pueden ser usados por herramientas de documentación, depuradores u otras aplicaciones para sustituir números mágicos y mostrar textos muchos más legibles. Otra ventaja de usar enumeraciones frente a números mágicos es que éstas participan en el mecanismo de comprobación de tipos de C# y el CLR.
  • 54. Sintaxis: enum <nombreEnumeracion> : <tipoBase> { <literales> } Una enumeración es un tipo especial de estructura que sólo puede tener como miembros campos públicos constantes y estáticos. El tipo por defecto de las constantes que forman una enumeración es int, aunque puede dárseles cualquier otro tipo básico entero.
  • 55. Uso de enumeraciones Las variables de tipos enumerados se definen como cualquier otra variable (sintaxis <nombreTipo> <nombreVariable>). Los literales de una enumeración son constantes públicas y estáticas. Los literales de una enumeración son constantes de tipos enteros y las variables de tipo enumerado son variables del tipo entero base de la enumeración.
  • 56. INTERFACES Una interfaz es la definición de un conjunto de métodos para los que no se da implementación, sino que se les define de manera similar a como se definen los métodos abstractos. Es más, una interfaz puede verse como una forma especial de definir clases que sólo cuenten con miembros abstractos. La sintaxis general que se sigue a la hora de definir una interfaz es: <modificadores> interface <nombre>:<interfacesBase> { <miembros> }
  • 57. INSTRUCCIONES Es toda acción que se pueda realizar en el cuerpo de un método, como definir variables, llamar métodos y realizar diferentes asignaciones dentro del código. { <ListaInstrucciones> }
  • 58. Instrucciones Básicas Variables Locales las cuales son variables que se definen en el cuerpo de los métodos y sólo son accesibles desde dichos cuerpos. Asignación Es simplemente una Instrucción mediante la que se indica un valor en un dato.
  • 59. Llamadas a métodos Consiste en solicitar la ejecución de sus instrucciones asociadas dando a sus parámetros ciertos valores. Instrucción Nula Es una instrucción que no realiza nada en absoluto. su sintaxis consiste en escribir un simple punto y coma para representarla
  • 60. Instrucciones Condicionales Son instrucciones que permiten ejecutar bloques de instrucciones sólo si se da una determinada condición. Instrucción If Permite ejecutar ciertas instrucciones sólo si se da una determinada Condición. if (<Condición>) <InstruccionesIf> else <InstruccionesElse>
  • 61. Instrucción Switch Permite ejecutar unos u otros bloques de instrucciones según el valor de una cierta expresión. switch() { case <valor1>: <bloque1> <siguienteAcción> case <valor2>: <bloque2> <siguienteAcción> … default: <bloqueDefault> <siguienteAcción> }
  • 62. Instrucciones Iterativas Son instrucciones que permiten ejecutar repetidas veces una instrucción o un bloque de instrucciones mientras se cumpla una condición. Instrucción While Permite ejecutar un bloque instrucciones mientras se da una cierta instrucción. while(<condición>) <instrucciones>
  • 63. Instrucción Do While La instrucción do...while es una variante del while que se usa así: do <instrucciones> while(<condición>); Instrucción for la instrucción for es una variante de while que permite reducir el código necesario para escribir los tipos de bucles más comúnmente usados en programación. for(<inicialización>;<condición>;<modificación>) <instrucciones>
  • 64. Instrucción foreach La instrucción foreach es una variante del for pensada especialmente para compactar la escritura de códigos donde se realice algún tratamiento a todos los elementos de una colección, que suele un uso muy habitual de for en los lenguajes de programación que lo incluyen. foreach(<tipoelemento><elemento>in<colección>) <instrucciones>
  • 65. Instrucciones De Excepciones 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. Básicamente es un objeto derivado de System.Exception que se genera cuando en tiempo de ejecución se produce algún error y que contiene información sobre el mismo.
  • 66. Instrucciones de Salto Permiten ejecutar variar el orden normal en que se ejecutan las instrucciones de un programa, que consiste en ejecutarlas unas tras otra en el mismo orden en que se hubiesen escrito en el fuente. ➔Instrucción Break ➔Instrucción Continue ➔Instrucción Return ➔Instrucción Goto ➔Instrucción Throw
  • 67. Otras Instrucciones ➔Instrucciones Checked y Unchecked ➔permiten controlar la forma en que tratan los desbordamientos que ocurran durante la realización de operaciones aritméticas con tipos de básico entero. ➔Instrucciones Lock ➔Es útil en aplicaciones concurrentes donde múltiples hilos pueden estar accediendo simultáneamente a un mismo recurso.
  • 68. CÓDIGO INSEGURO Es todo aquel fragmento de código en C# dentro del cual es posible hacer uso de punteros. Uso puntero en C# es una variable que es capaz de almacenar direcciones de memoria. Generalmente suele usarse para almacenar direcciones que almacenan objetos, por lo que en esos casos su significado es similar al de variables normales de tipo de referencia.