User avatar by pello in January 1, 1970, 1:00 am
Vamos a ver algunas estructuras básicas de c#. Hay alguna cosa curiosa en la forma de definir los arrays y las propiedades de las estructuras. Veamos la struct:
/**
* Estructuras.cs
*
*/

using System;

/**
* Las estructuras de C# se comportan practicamente como clases, 
* salvo que no es imprescindible instanciarlas y que se guardan
* en memoria de otra forma. Veamo un ejemplo.
*/
public struct Casa 
{
	// Para que sean accesibles, hay que declararlos public
	// y no se pueden inicializar.
	public string calle;
	public int pisos;
	public int fechaConstruccion;
}

// Aquí vemos una estructura con su constructor, sus métodos, etc..
// pero OJO no puede tener métodos destructores
struct Manzana
{
	public string nombre;
	public Casa casa;
	
	// La estructura debe tener constructor CON PARAMETROS
	public Manzana (string nombre)
	{
		// Establecemos algunos valores
		this.nombre = nombre;
		casa.calle = "Castellana";
		casa.pisos = 14;
		casa.fechaConstruccion = 1900;
	}
	
	// Un método para aumentar el numero de pisos
	// de una manzana
	public void aumenta(int pisos)
	{
		casa.pisos += pisos;
	}
	
}

// Definimos la clase Ciudad para usar la estructura de calles
public class Ciudad
{
	
	public static void Main()
	{
		// La estructura se puede instanciar o no
		Casa singular = new Casa();
		
		Casa particular; // Esta la usamos sin instanciar
		Manzana manzanaCara = new Manzana("La más cara de todas");
		
		singular.pisos = 5;
		singular.calle = "Gran Vía";
		singular.fechaConstruccion = 1989;
		
		System.Console.WriteLine("Una casa de {0} pisos en {1}", singular.pisos, singular.calle);
		
		particular.calle = "Leganitos";
		particular.pisos = 40;
		
		// Lo mostramos a ver
		System.Console.WriteLine("Una casa de {0} pisos en {1}", particular.pisos, particular.calle);
		System.Console.WriteLine("Esta manzana es {0}", manzanaCara.nombre);

	}
}
Las enumeraciones:
/**
* Enumeraciones.cs
* Las enumeraciones son variables que contienen un numero limitado
* de valores posibles
*
*/

// Los enumeradores son como una lista de posibles valores
// que implicitamente llevan asociado un número entero
public enum Dias
{	
	Lunes,        // = 0
	Martes,       // = 1,
	Miercoles,    // = 2,...
	Jueves,
	Viernes,
	Sábado,
	Domingo
}


// El número entero puede ser establecido por nosotros
// Para que no empiece contando desde 0, le asignamos valores
public enum Mes
{
	Enero = 1,
	Febrero = 2,
	Marzo = 3,
	Abril = 4,
	Mayo = 5,
	Junio = 6
}

// Podemos especificar un tipo distinto a int
public enum Boton : byte
{
	Arranque,
	Parada
}

public class Usalas
{
	
	public static void Main()
	{
		// La estructura se puede instanciar o no
		Dias diaSemana;
		
		// Establecemos el día de la semana, hay que hacer Cast
		diaSemana = (Dias) 3;

		System.Console.WriteLine("El día de la semana es {0} o {1}", diaSemana, (int)diaSemana);

		diaSemana = (Dias) 6;
		
		switch (diaSemana)
		{
			case Dias.Lunes :
				System.Console.WriteLine("Hoy es Lunes");
				break;
			case Dias.Martes :
				System.Console.WriteLine("Hoy es Martes");
				break;
			case Dias.Miercoles :
				System.Console.WriteLine("Hoy es Miercoles");
				break;
			case Dias.Jueves :
				System.Console.WriteLine("Hoy es Jueves");
				break;
			case Dias.Viernes :
				System.Console.WriteLine("Hoy es Viernes");
				break;
			default:
				System.Console.WriteLine("¡Estamos en finde!");	
				break;						
		}
		
		System.Console.WriteLine("El día de la semana es {0}", diaSemana);

	}
}
Y los arrays. Se crean con la palabra new. Al final simplemente se menciona lo de arrays multidimensionales y los arrays anidados.
/**
* Arrays.cs
* Clase para comprobar el manejo de arrays en C#
*/

// Definimos una clase que contiene los datos de un equipo de futbol
public class Equipo
{
	public string[] jugadores;
	public int[] edades;
	
	public Equipo ()
	{
		// Se crea el array usando new y estableciendo el tamaño
		jugadores = new string[11];
		// Se crea e inicializa
		edades = new int[11]{23,24,23,24,25,26,21,23,23,34,21};
		
	}
	
	public void inicializar()
	{
		jugadores[0] = "Casillas";
		jugadores[1] = "Puyol";
		jugadores[2] = "Pablo";
		jugadores[3] = "Xavi";
		jugadores[4] = "Xabi Alonso";
		jugadores[5] = "Senna";
		jugadores[6] = "Raúl";
		jugadores[7] = "Cesc";
		jugadores[8] = "Pernia";
		jugadores[9] = "Torres";
		jugadores[10] = "Villa";
	}
	
	public static void Main ()
	{
		int i = 0;
		
		Equipo seleccion = new Equipo();

		System.Console.WriteLine("Equipo creado");
		
		seleccion.inicializar();
		
		// Recorremos el array con un for convencional
		// Usando la propiedad Length para controlar la longitud
		for (i = 0; i < seleccion.edades.Length; i++)
		{
			System.Console.WriteLine("Edad de jugador nº{0}: {1}", i,seleccion.edades[i]);
		}
		
		// Recorriendo el array con un foreach
		foreach (string nombre in seleccion.jugadores)
		{
			System.Console.WriteLine("Jugador: {0}", nombre);
		}
		
		
		// Arrays MULTIDIMENSIONALES, se definen de forma curiosa
		// con un [,]
		string[,] ligaDeFutbol = new string[2,5];
		ligaDeFutbol[0,0] = "Ricardo";
		ligaDeFutbol[0,1] = "Raúl García";
		ligaDeFutbol[0,2] = "Milosevic";
		ligaDeFutbol[1,0] = "Ronaldinho";
		ligaDeFutbol[1,1] = "Eto'o";
		
		// Definición con inicialización
		int[,] valores = new int[,]{{2,7,3},{2,5,3}};
		
		// Arrays anidados, permiten meter arrays dentro de otros
		// con tamaño distinto: se crean arrays de arrays
		int[][] masValores = new int[3][];
		masValores[0] = new int[3];
		masValores[1] = new int[8];
		masValores[2] = new int[1];
	}
}
2 comments |  PELMAlink |  1831 reads
0 of 0
make a comment
Comments
#1  user avatar Cloaked Anonymous says:
Hola
Hola, como estas? He leìdo tu manual de struts,esta muy bueno auque no me corrio algunas cositas, pero me sirvio de mucho tendràs mas ejemplos que puedas compartir? Muchas gracias . Saludos Ysabel
+-0 of 0
in January 1, 1970, 1:01 am
#2  user avatar Cloaked Anonymous says:
Hola
Hola, como estas? He leìdo tu manual de struts,esta muy bueno auque no me corrio algunas cositas, pero me sirvio de mucho tendràs mas ejemplos que puedas compartir? Muchas gracias . Saludos Ysabel
+-0 of 0
in January 1, 1970, 1:01 am
Show all fields