Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VISUAL C# 3.-Lenguaje - C
VISUAL C# 3.-Lenguaje - C
Tema 4: El lenguaje C#
ndice
Introduccin
Tipos de datos
Operadores y expresiones
Estructuras de control
Condicionales
De repeticin
Excepciones
Funciones y mtodos
C#
Introduccin
C#
Un programa en C# contiene:
void Main()
int Main()
void Main(string[] args)
int Main(string[] args)
o relativo:
using System; ...;
Console.WriteLine(...);
C#
Ejemplo:
namespace N1 {
class C1 {
// ...
}
struct S1 {
// ...
}
interface I1 {
// ...
}
delegate int D1();
enum E1 {
// ...
}
}
.... */
C#
Tipos de datos
Tipos
Tipos de
de datos
datos
Tipos
Tipos de
de valor
valor
- Intrnsecos,
- Enumeraciones,
- Estructuras
Tipos
Tipos de
de referencia
referencia
- Autodescriptivos: clases y arrays
- Interfaces
- Punteros
C#
Descripcin
Bits
Rango de valores
Alias
SByte
[-128, 127]
sbyte
Byte
[ 0 , 255]
byte
Int16
16
[-32.768, 32.767]
short
UInt16
16
[0, 65.535]
ushort
Int32
Enteros normales
32
[-2.147.483.648, 2.147.483.647]
int
UInt32
32
[0, 4.294.967.295]
uint
Enteros largos
64
[-9.223.372.036.854.775.808,
9.223.372.036.854.775.807]
long
UInt64
64
[0-18.446.744.073.709.551.615]
ulong
Single
32
[1,510-45 - 3,41038]
float
Double
64
[5,010-324 - 1,710308]
double
Decimal
128
[1,010-28 - 7,91028]
decimal
Boolean
Valores lgicos
32
true, false
bool
Char
Caracteres Unicode
16
[\u0000, \uFFFF]
char
String
Cadenas de caracteres
Variable
string
Object
Cualquier objeto
Variable
Cualquier objeto
object
Int64
C#
Identificadores
Se usan para dar nombres a los elementos de un programa
como variables, constantes y mtodos.
Consta de caracteres alfanumricos y _
Sensible a maysculas y minsculas. Comenzar con letra o _
Palabras reservadas:
C#
Variables
Una
Es
Recordar
Los
C#
Variables
Variables de
de tipo
tipo valor:
valor:
Contienen
Contienen sus
sus datos
datos
directamente
directamente
Variables
Variables de
de tipo
tipo referencia:
referencia:
Cada
Cada una
una tiene
tiene su
su
propia
propia copia
copia de
de datos
datos
Almacenan
Almacenan referencias
referencias aa
sus
sus datos
datos (conocidos
(conocidos
como
como objetos)
objetos)
Las
Las operaciones
operaciones
sobre
sobre una
una no
no afectan
afectan
aa otra
otra
Dos
Dos variables
variables de
de
referencia
referencia pueden
pueden
apuntar
apuntar alal mismo
mismo objeto
objeto
Las
Las operaciones
operaciones sobre
sobre
una
una pueden
pueden afectar
afectar aa
otra
otra
C#
Unicode para a
L long
U unsigned
ul4=2UL;
C#
C#
using System;
namespace ConsoleAppVisibilitat
{
class Simple
{
public int Var1=10;
private int Var2=20; //local
public int Var3=30;
}
class Class1
{
[STAThread]
static void Main(string[] args)
{
Simple s = new Simple();
Console.WriteLine("Simple:");
Console.WriteLine("Var1={0},
Var3={1}",s.Var1, s.Var3);
Console.ReadLine();
}
}
}
C#
using System;
namespace ConsoleAppVisibilitatSTAT {
class Simple
{
public static int Var3=30; //pblica i
esttica
static int Var4=40; //privada i esttica
public void mostraVar4()
{
Console.WriteLine("Var4={0}", ++Var4);
}
}
class Class1
{
[STAThread]
static void Main(string[] args) {
Simple s = new Simple();
Simple k = new Simple();
Console.WriteLine("Simple:");
Console.WriteLine("Var3={0}",Simple.Var3++);
Console.WriteLine("Var3={0}",Simple.Var3);
s.mostraVar4();
k.mostraVar4();
Console.ReadLine();
No afecta a su
visibilidad
}
}
}
C#
Constantes
El modificador const permite crear constantes de
programas:
Class Class1 {
private const int min = 1;
private const int max = 100;
public const int rango = max min;
}
}
C#
Tipos de datos
de una enumeracin:
Uso
de una enumeracin:
o
colorPaleta = (Color)0; // Tipo int a Color
Visualizacin
Console.WriteLine({0}, colorPaletta);
// Muestra Rojo
C#
Uso:
Empleado empresaEmpleado, otroEmpleado;
empresaEmpleado.Nombre = "Juan";
empresaEmpleado.edad = 23;
otroEmpleado = empresaEmpleado; //asignacin directa
C#
Ocurre
Ocurre de
de forma
forma automtica
automtica
Siempre
Siempre tiene
tiene xito
xito
Nunca
Nunca se
se pierde
pierde informacin
informacin
en
en la
la conversin
conversin
Conversin
Conversin explcita
explcita
Requiere
Requiere la
la realizacin
realizacin del
del cast
cast
Puede
Puede no
no tener
tener xito
xito
Puede
Puede perderse
perderse informacin
informacin en
en la
la
conversin
conversin
// implcita
// explcita
// explcita
// explcita
C#
Operadores y expresiones
Operadores aritmticos:
Operadores relacionales:
+, Suma unaria , +a
-, Resta unaria, -a
++, Incremento, ++a o a++
--, Decremento, --a o a-+, Suma, a+b
-, Resta, a-b
*, Multiplicacin, a*b
/, Divisin, a/b
%, Resto, a%b
Operadores de manipulacin
de bits:
int i1=32;
int i2=i1<<2; // i2==128
int i3=i1>>3; // i3==4
C#
Otros operadores
Precedencia
+
Opera dores
()
* / %
+ < <= > >=
== !=
=
Asocia tivida d
Izquierda a derecha
Izquierda a derecha
Izquierda a derecha
Izquierda a derecha
Izquierda a derecha
Derecha a izquierda
Tipo
Parntesis
Multiplicativos
Adicin
Relacionales
Igualdad
Asignacin
Asociatividad
Todos
Los
C#
Arrays
Derivados de System.Array
ejemplo: string[] a;
El tipo de datos viene dado por string[], el nombre del array es una
referencia al array
C#
Dimensiones: Rank
Console.WriteLine(a);
C#
Caracteres y cadenas
C#
Estructuras de control
Instrucciones
int i, j;
i=1;
Grupos de instrucciones se
pueden agrupar en bloques
con { y }
{
j=2;
i=i+j;
}
int i;
...
{
int i;
...
}
int i;
...
...
int i;
...
C#
Condicionales
if (<condicin>)
<sentenciasCondTrue>
if (<condicin>)
{
<sentenciasCondTrue>
[else
{
<sentenciasCondFalse>
}]
Ejemplo:
if (a>b) Mayor=a;
if (a>b)
{
Mayor=a;
Menor=b;
}
else
{
Mayor=b;
Menor=a;
}
C#
Ejemplo if en cascada
enum Palo { Treboles, Corazones, Diamantes, Picas}
Palo cartas = Palo.Corazones;
string color;
if (cartas == Palo.Treboles)
color = Negro;
else if (cartas == Palo.Corazones)
color = Rojo";
else if (palo == Palo.Diamantes)
color = "Rojo";
else
color = Negro";
C#
Condicionales mltiples
switch (<expressin>)
{
case Opc1 :
[<sentencias-1>]
break;
[case Opc2 :
[<sentencias-2>]
break;
default:
<sentencias-def>
break;]
}
Ejemplo:
switch(B)
{
case 5:
Console.WriteLine(B es ptimo);
A=10;
break;
case 1:
case 2:
case 3:
case 4:
Console.WriteLine(B est por
debajo del valor ptimo);
A=3;
break;
default:
Console.WriteLine(B no es vlido);
break;
}
C#
De repeticin
for
C#
while
while (true)
(true) {{
...
...
}}
int
int ii == 10;
10;
while
while (i
(i >> 5)
5) {{
...
...
i--;
i--;
}}
int
int ii == 0;
0;
while
while (i
(i << 10)
10) {{
Console.WriteLine(i);
Console.WriteLine(i);
i++;
i++;
0 1 2 3 4 5 6 7 8 9
}}
C#
do
do {{
...
...
}} while
while (true);
(true);
int
int ii == 10;
10;
do
do {{
...
...
i--;
i--;
}}
while
while (i
(i >> 5);
5);
int
int ii == 0;
0;
do
do {{
Console.WriteLine(i);
Console.WriteLine(i);
i++;
i++;
0 1 2 3 4 5 6 7 8 9 10
}} while
while (i
(i <=
<= 10);
10);
C#
Instrucciones de salto
C#
Excepciones
int
int errorCodigo
errorCodigo == 0;
0;
FileInfo
FileInfo source
source == new
new FileInfo("code.cs");
FileInfo("code.cs");
if
if (errorCodigo
(errorCodigo ==
== -1)
-1) goto
goto Fallo;
Fallo;
int
int longitud
longitud == (int)source.Length;
(int)source.Length;
if
if (errorCodigo
(errorCodigo ==
== -2)
-2) goto
goto Fallo;
Fallo;
char[]
char[] contenido
contenido == new
new char[longitud];
char[longitud];
if
if (errorCodigo
(errorCodigo ==
== -3)
-3) goto
goto Fallo;
Fallo;
//
// No
No hay
hay problemas
problemas ...
...
Trat.
Fallo:
Trat.De
Deerrores
errores
Fallo: ...
...
C#
Exception
Exception
SystemException
SystemException
OutOfMemoryException
OutOfMemoryException
IOException
IOException
NullReferenceException
NullReferenceException
ApplicationException
ApplicationException
C#
}
catch {
...
}[ finally {
...
}]
Ejemplo:
try {
Console.WriteLine("Escriba un nmero");
int i = int.Parse(Console.ReadLine());
}
catch (OverflowException capturada)
{
Console.WriteLine(capturada);
}
C#
try
{
Console.WriteLine(Escriba el primer nmero");
int i = int.Parse(Console.ReadLine());
Console.WriteLine("Escriba el segundo nmero");
int j = int.Parse(Console.ReadLine());
int k = i / j;
}
catch (OverflowException capturada) {
Console.WriteLine(capturada); }
catch (DivideByZeroException capturada)
{Console.WriteLine(capturada); }
catch {} // tambin: catch (Exception x) { }
...
C#
Funciones y mtodos
Todas las funciones siempre pertenecen a una clase, luego son todas
las funciones son mtodos.
C#
C#
Variables locales
Variables
Conflictos
compartidas
de mbito
C#
Devolucin de valores
static
static int
int DosMasDos(
DosMasDos(
int
int a,b;
a,b;
aa == 2;
2;
bb == 2;
2;
return
return aa ++ b;
b;
}}
)) {{
int
int x;
x;
xx == DosMasDos(
DosMasDos( );
);
Console.WriteLine(x);
Console.WriteLine(x);
C#
Parmetros
Declaracin de parmetros
static
static void
void MetodoConParametros(int
MetodoConParametros(int n,
n, string
string y)
y)
{{ ...
... }}
MetodoConParametros(2,
MetodoConParametros(2, "Hola,
"Hola, mundo");
mundo");
C#
static
static void
void SumaUno(int
SumaUno(int x)
x)
{{
x++;
x++; //
// Incrementar
Incrementar xx
}}
static
static void
void Main(
Main( ))
{{
int
int kk == 6;
6;
SumaUno(k);
SumaUno(k);
Console.WriteLine(k);
Console.WriteLine(k); //
// Muestra
Muestra el
el valor
valor 6,
6, no
no 77
C#
static
static int
int RaizCuarta(ref
RaizCuarta(ref int
int x)
x)
{{
xx == (int)Math.Sqrt(x);
(int)Math.Sqrt(x);
return
return (int)Math.Sqrt(x);
(int)Math.Sqrt(x);
}}
static
static void
void Main(
Main( )) {{
int
int num
num == 625;
625; //siempre
//siempreinicializar!!
inicializar!!
Console.WriteLine(Raiz
Console.WriteLine(Raiz cuarta:
cuarta: {0},
{0}, el
el nmero
nmero
original
original es:
es: {1},
{1}, RaizCuarta(ref
RaizCuarta(ref num),
num), num);
num);
}}
C#
Parmetros de salida
Pasan valores hacia fuera, pero no hacia dentro
No se pasan valores al mtodo
Se usa la palabra clave out en la declaracin y las llamadas al
mtodo
static
static void
void OutDemo(out
OutDemo(out int
int p)
p)
{{
//
// ...
...
}}
static
static void
void Main(
Main( )) {{
int
int n;
n;
OutDemo(out
OutDemo(out n);
n);
}}
C#
static
static long
long SumaLista(params
SumaLista(params long[
long[ ]] v)
v)
{{
long
long total,
total, i;
i;
for
for (i
(i == 0,
0, total
total == 0;
0; ii << v.Length;
v.Length; i++)
i++)
total
total +=
+= v[i];
v[i];
return
return total;
total;
}}
static
static void
void Main(
Main( ))
{{
long
long xx == SumaLista(63,21,84);
SumaLista(63,21,84);
}}
C#
Devolucin
class
class EjemploArr1
EjemploArr1 {{
static
static void
void Main(
Main( )) {{
int[
int[ ]] array
array == CreateArray(42);
CreateArray(42);
...
...
}}
static
static int[
int[ ]] CreateArray(int
CreateArray(int tamano)
tamano) {{
int[
int[ ]] creada
creada == new
new int[tamano];
int[tamano];
return
return creada;
creada;
}}
}}
C#
class
class EjemploArr2
EjemploArr2 {{
static
static void
void Main(
Main( ))
{{
int[
int[ ]] arg
arg == {10,
{10, 9,
9, 8,
8, 7};
7};
Method(arg);
Method(arg);
System.Console.WriteLine(arg[0]);
System.Console.WriteLine(arg[0]);
}}
}}
static
static void
void Metodo(int[
Metodo(int[ ]] parametro)
parametro) {{
parametro[0]++;
parametro[0]++;
Este
Este mtodo
mtodo modificar
modificar
}}
elel array
array original
original
creado
creado en
en Main
Main
C#
recursivos
static
static ulong
ulong Fibonacci(ulong
Fibonacci(ulong n)
n)
{{
if
if (n
(n <=
<= 2)
2)
return
return 1;
1;
else
else
return
return Fibonacci(n-1)
Fibonacci(n-1) ++ Fibonacci(n-2);
Fibonacci(n-2);
}}
C#
sobrecargados (overloading)
C#