Programación Visual IProgramación Visual IIngeniería en Telemática
Ing. Julio César González MorenoIng. Julio César González [email protected]
Universidad Nacional Autónoma de NicaraguaLeón, Nicaragua
Pre-requisito: Programación Orientada a ObjetosCréditos: 4Semestre: 6to
Tema 2: Resumen del lenguaje
Contenidos
Comentarios
Tipos
Conversión entre tipos
Identificadores
Palabras reservadas
Declaración de constantes simbólicas
Declaración de variables
Sentencias
Arreglos o arrays
Caracteres y cadenas
Sentencias de control
Estructura de un programa C#
Bibliografía
2 / 36Programación Visual IIngeniería en Telemática
Comentarios
Tipos de comentarios:
De una solo línea (como en C), no se realiza acción alguna con una línea de este tipo
Ejemplo:
//Esto es un comentario
De una o más líneas
Ejemplo:
/*Estas líneas de código también son consideradas como comentarios*/
3 / 36Programación Visual IIngeniería en Telemática
Tipos (I)
Tipos en C# se clasifican en:
Tipos valor
Almacena directamente un valor (un dato)
Ejemplo: int suma = 0;
Tipos referencia
Almacena una referencia a un objeto (posición de memoria donde está el objeto)
Ejemplo: string cadena = null;
Todos los tipos de datos derivan de System.Object
Cualquier tipo puede ser tratado como un objeto
4 / 36Programación Visual IIngeniería en Telemática
Tipos (II)
Tipos en C# se clasifican en:
Tipos valor
Pueden ser inicializados al declararse
Ejemplo: bool bRetorno = true;
Tipos referencia
Los valores de referencia son creados con la palabra reservada new
Ejemplo: frmMensaje = new frmMensaje(this);
5 / 36Programación Visual IIngeniería en Telemática
Tipos (III)
6 / 36Programación Visual IIngeniería en Telemática
Conversión entre tipos
Conversión implícita
Es automática
Es siempre exitosa
No se pierde información en la conversión
Conversión explícita
Obliga a la realización de un conversión cast
Puede no tener éxito
Puede perderse información en la conversión
Ejemplos:
int iValor = 123;
long lValor = iValor; //Implícita de int a long
IntValor = (int) lValor; //Explícita de long a int
7 / 36Programación Visual IIngeniería en Telemática
Identificadores
Se usan para dar nombres a los elementos de un programa como variables, constantes, clases, interfaces, métodos, espacios de nombres, etc.
La sintaxis para formar un identificador es la siguiente:
{letra|_}[{letra|digito|_}]...
Hay diferencia entre mayúsculas y minúsculas
Pueden estar formados hasta por 1023 caracteres
8 / 36Programación Visual IIngeniería en Telemática
Palabras reservadas
Conjunto de identificadores predefinidos que tienen un significado especial para el compilador
Las palabras reservadas deben escribirse siempre en minúsculas
Palabras reservadas: public, null, static, string, void, new, while, etc.
Un identificador definido por el programador no debe tener el mismo nombre de un identificador predefinido (palabra reservada)
Ejemplo: int public = 0; //Error
Para definir un identificador con el mismo nombre de un identificador predefinido (palabra reservada) se debe usar el carácter @ como carácter de escape
Ejemplo: int @public = 0; //@ previene el conflicto con public
9 / 36Programación Visual IIngeniería en Telemática
Declaración de constantes simbólicas
Declarar una constante simbólica significa decirle al compilador el nombre de la constante y su valor
Esto se hace utilizando la palabra reservada const
Sintaxis:
const tipo <identificador> = <valor>
Ejemplo:
const double PI = 3.141592;
10 / 36Programación Visual IIngeniería en Telemática
Declaración de variables (I)
public class cElementos
{
private int dia, mes, anyo = 2011;
public void Test(string strNombre)
{
int contador = 0;
string nombre = “”, apellidos = “”;
dia = 20;
apellidos = “Morales”;
nombre = strNombre;
}
}
Dependiendo de donde se declare, su uso estará limitado a la clase o al método
El espacio del programa al que queda limitado una variable se denomina ámbito de esa variable
11 / 36Programación Visual IIngeniería en Telemática
Declaración de variable a nivel de clase (atributo)
Declaración de variable a nivel de método
Declaración de variables (II)
La visibilidad de una variable fuera de su ámbito se puede modificar anteponiendo el especificador de acceso public o private en la declaración
Las variables declaradas a nivel de clase
Existen en todos los ámbitos dentro de la clase (variables globales)
Por defecto son iniciadas por el compilador
Variables numéricas a 0, caracteres a '\0', referencias a null
También pueden ser iniciadas explícitamente
Las variables declaradas a nivel de método
Existen únicamente dentro del ámbito del propio método
No son iniciadas por el compilador
Es nuestra obligación iniciarlas
12 / 36Programación Visual IIngeniería en Telemática
Sentencias
Pueden formarse a partir de:
Una palabra reservada (for, while, if, etc.)
Expresiones
Declaraciones
Llamadas a métodos
Para escribirlas hay que tener en cuenta las siguientes consideraciones:
Toda sentencia simple termina con punto y coma (;)
Dos o más sentencias pueden aparecer sobre una misma línea, separadas una de la otra por un punto y coma
Una sentencia nula empieza y termina con un punto y coma
13 / 36Programación Visual IIngeniería en Telemática
Arreglos o arrays (I)
Los arrays son tipos por referencia
Sus índices comienzan en 0
Derivados de System.Array
Ejemplo: string[] a;
El tipo de datos viene dado por string[], el nombre del array es una referencia al array
Para crear espacio para los elementos es necesario usar:
string[] a = new string[100];
Los arrays se pueden inicializar directamente:
string[] animales = {"gato", "perro", "caballo"};
int[] a2 = {1, 2, 3};
14 / 36Programación Visual IIngeniería en Telemática
Arreglos o arrays (II)
Información sobre un array:
Dimensiones: Rank
Número de elementos: GetLength()
Saber si es un array:
if (a is Array)
System.Console.WriteLine(“Array”);
Recorrer los elementos de un array sin conocer sus índices:
string[] animales = {"gato", "perro", "caballo"};
foreach (string a in animales)
System.Console.WriteLine(a);
15 / 36Programación Visual IIngeniería en Telemática
Caracteres y cadenas
Existen dos tipos para manipular caracteres: char y string
char puede contener cualquier carácter Unicode (16 bits)
Manipulación de caracteres: IsDigit(), IsLetter(), IsPunctuation(), ToUpper(), ToLower(), ToString(), etc.
Una variable de tipo string es una referencia al lugar donde se guarda la cadena
Cada vez que se modifica el valor de la cadena se asigna un nuevo bloque de memoria y se libera el anterior
Concatenación: operador + o usar el método Concat()
string a, b;
a = "Visual";
b = " studio";
Console.WriteLine(“Concatenación con +: ", a + b);
Console.WriteLine("Concatenación con Concat(): ", string.Concat(a, b));
16 / 36Programación Visual IIngeniería en Telemática
Sentencias de control (I)
Permiten tomar decisiones y realizar un proceso repetidas veces
C# dispone de las siguientes sentencias de control:
if ... else
switch
while
do ... while
for
foreach
try ... catch
17 / 36Programación Visual IIngeniería en Telemática
if (<condición>)
<sentenciasCondTrue>
if (<condición>)
{
<sentenciasCondTrue>
[else
{
<sentenciasCondFalse>
}]
18 / 36Programación Visual IIngeniería en Telemática
Ejemplo:
if (a>b)Mayor=a;
if (a>b){
Mayor=a;Menor=b;
}else{
Mayor=b;Menor=a;
}
Sentencias de control (II)Sentencia if
switch (<expressión>)
{
case Opc1 :
[<sentencias-1>]
break;
[case Opc2 :
[<sentencias-2>]
break;
...
default:
<sentencias-def>
break;]
}
19 / 36Programación Visual IIngeniería en Telemática
Ejemplo:
switch(B)
{
case 5:
Console.WriteLine(“B es óptimo);
A=10;
break;
case 1:
case 2:
case 3:
case 4:
Console.WriteLine(“B debajo del valor óptimo);
A=3;
break;
default:
Console.WriteLine(“B no es válido);
break;
}
Sentencias de control (III)Sentencia switch
while ejecuta instrucciones en función de un valor booleano
Evalúa la expresión booleana al principio del bucle
20 / 36Programación Visual IIngeniería en Telemática
while (true){
//...}
int i = 10;
while (i > 5){
//...i--;
}int i = 0;
while (i < 10){
Console.WriteLine(i);i++;
}
Sentencias de control (IV)Sentencia while
do ejecuta instrucciones en función de un valor booleano
Evalúa la expresión booleana al final del bucle
21 / 36Programación Visual IIngeniería en Telemática
do {//...
} while (true);
int i = 10;
do {//...i--;
} while (i > 5);
int i = 0;
do {Console.WriteLine(i);i++;
} while (i <= 10);
Sentencias de control (V)Sentencia do ... while
for (int i = 0; i < 5; i++) { //Variable i declarada dentro del bucle
System.Console.WriteLine(i);
}
//Bucle infinito
for (;;) {
//...
}
for (int i = 1, j = 2; i <= 5; i++, j += 2) { //Múltiples expresiones
System.Console.WriteLine("i = " + i + ", j = " + j);
}
22 / 36Programación Visual IIngeniería en Telemática
Sentencias de control (VI)Sentencia for
Ejecuta instrucciones para cada elemento de una colección
public void mostrarColores(string[] colores)
{
foreach (string s in colores)
{
//Muestra los elementos de la colección colores una por una
System.Console.WriteLine(s);
}
}
23 / 36Programación Visual IIngeniería en Telemática
Sentencias de control (VII)Sentencia foreach
Se utilizan para manejar las excepciones que se producen durante la ejecución del programa
Las excepciones son un mecanismo que permite controlar situaciones de error
Todas las excepciones derivan de la clase System.Exception
24 / 36Programación Visual IIngeniería en Telemática
Sentencias de control (VIII)Sentencias try ... catch (I)
Tratamiento de excepciones:
try {
// bloque normal de código
//...
}
catch {
// bloque que controla la excepción
//...
}
[ finally
{
// bloque de finalización que siempre se ejecuta
//...
}]
25 / 36Programación Visual IIngeniería en Telemática
Ejemplo:
try {Console.WriteLine("Escriba un número");int i = int.Parse(Console.ReadLine());
}catch (OverflowException capturada){
Console.WriteLine(capturada);}
Sentencias de control (IX)Sentencias try ... catch (II)
Estructura de un programa C# (I)
Un programa C# se compone solamente de objetos
Un programa en C# contiene:
Uno o más ficheros que contienen:
Uno o más espacios de nombres que contienen:
– Tipos de datos: clases, estructuras, interfaces, enumeraciones y delegados
Si no se declara un namespace se asume el global por defecto
Para acceder a un tipo podemos usar un camino absoluto:
System.Console.WriteLine(“Hola mundo”);
o relativo:
using System;
Console.WriteLine(“Hola mundo”);
26 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (II)Esqueleto mínimo aplicación gráfica C#
27 / 36Programación Visual IIngeniería en Telemática
using System;using System.Drawing;using System.Windows.Forms;
public class frmAcercaDe : Form {private PictureBox logoPictureBox;private Label labelProductName;private Button okButton;
public frmAcercaDe() {InitializeComponent();
}
public string labelProductName {get {
return this.labelProductName.Text;}set {
labelProductName.Text = value;}
}
private void okButton_Click(object sender, EventArgs e) {
MessageBox.Show(“Programación Visual I”);}
}
Espacios de nombre
Declaración de la clase, derivada de Form
Atributos miembros de la clase
Constructor de la clase
Métodos
Propiedades
Una clase (class) es la representación simbólica de un objeto
Visto desde el lenguaje:
Se trata de un nuevo tipo de objetos definido por el programador (tipo referencia)
Visto desde el código fuente:
Se trata de un módulo de código escrito en C# almacenado en un fichero .cs
Sintaxis:
[internal | public | private | protected]
class <nombre_clase>
{
//Atributos, propiedades y métodos de la clase
}
28 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (III)Clases (I)
Las palabras reservadas internal, public, private y protected definen el nivel de protección de una clase
Determinan la relación que guarda esa clase con otras de otros proyectos
Una clase declarada con el nivel de protección:
internal: solo puede ser utilizada por clases de un mismo proyecto (nivel por default)
public: puede ser utilizada por cualquier otra clase de otro proyecto
private: es accesible solamente desde dentro de su contexto de declaración
protected: es accesible solamente desde dentro de su propia declaración o desde una clase derivada
29 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (IV)Clases (II)
Definen un ámbito
Proporciona una forma de crear tipos globalmente únicos
Permiten agrupar las clases en tipos, denominados genéricamente espacios de nombres, en función de la labor que desempeñen
Algunos espacios de nombre:
30 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (V)Espacios de nombre
IO predeterminado
Windows UI Otros espacios
Forms Net
Web
System
Para crear un espacio de nombre se utiliza la palabra reservada namespace
Ejemplo:
Creación del espacio de nombres System que empaqueta las clases A y B y el espacio de nombres Windows, que a su vez empaqueta al espacio Forms que incluye las clases C y D
31 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (VI)Crear un espacio de nombre
namespace System{
class A { }class B { }namespace Windows{
namespace Forms{
class C { }class D { }
}}
}
Acceso a una clase dentro de un espacio de nombres:
Utilizando su nombre completo
System.Console
– Referencia a la clase Console del espacio de nombres System
System.Windows.Forms.Button
– Referencia a la clase Button del espacio de nombres System.Windows.Forms
Indicando el espacio de nombres donde está la clase (explícitamente)
Se utiliza la palabra reservada using al principio del código
Para referirse a la clase únicamente se emplea su nombre
using System;
public class CapGrados
{
//...
Console.WriteLine(“Probando...”);
//...
}
32 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (VII)Acceder a un espacio de nombre
public class hogar
{
//...
public int gastoComida(double dPrecioComida)
{
//...
return <valorEntero>;
}
//...
}
Colección de sentencias que ejecutan una tara específica
Siempre pertenecen a una clase
La definición de un método no puede contener la definición de otro método
No se permiten métodos anidados
33 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (VIII)Métodos (I)
Los métodos, por defecto, son privados (private)
Ejemplo:
using System;
public class EjemploClase
{
void EjemploMetodo( )
{
Console.WriteLine("Este es un ejemplo de un método");
}
}
34 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (IX)Métodos (II)
Una vez que se ha definido un método, se puede:
Llamar al método desde la misma clase en la que fue declarado
Se usa el nombre del método seguido de una lista de parámetros entre paréntesis
Llamar a un método que está en una clase diferente
Determinar la clase que contiene el método
Crear un objeto de dicha clase (cuando sea necesario)
Invocar al método por su nombre seguido de una lista de parámetros entre paréntesis
El método llamado se debe declarar con el especificador de acceso public o protected
35 / 36Programación Visual IIngeniería en Telemática
Estructura de un programa C# (X)Métodos (III)
Bibliografía
C#. Curso de Programación
Fco. Javier Ceballos Sierra
RA-MA
Enciclopedia de Microsoft Visual C#, 2da edición
Fco. Javier Ceballos Sierra
RA-MA
Capítulo 3, página 38
36 / 36Programación Visual IIngeniería en Telemática
Top Related