2
Estructuras en C#, con ejemplos Usted desea utilizar las estructuras para mejorar el rendimiento de su aplicación y la claridad del código. Las estructuras tienen ventajas sobre las clases en algunas situaciones, pero también desventajas, sobre todo en el lenguaje de programación C#. Aquí podemos ver varios ejemplos de estructuras y puntos de referencia, utilizando el lenguaje C#. Uso de las estructuras En primer lugar, aquí podemos ver un programa sencillo de ejemplo que utiliza un tipo de estructura en el lenguaje de programación C#. En este ejemplo se utiliza un proyecto de consola (Console Application) para hacer la llamada a una simple estructura, que almacena tres valores: dos números y un booleano. /// <summary> /// Las estructuras (Struct) son tipos por valor /// Las clases (Class) son tipos por referencia /// </summary> class Program { static void Main(string[] args) { Simple s; s.Posicion = 1; s.Existe = false; s.UltimoValor = 5.5; //Fijese muy bien que es lo que sucede con los atributos de la estructura //Antes de llamar al método CambiaValoresStruct CambiaValoresStruct(s); Console.ReadKey(); } static void CambiaValoresStruct (Simple s) { s.Posicion = 10; s.Existe = true; s.UltimoValor = 7.8; } } /// <summary> /// Definicion de la estructura /// </summary> struct Simple { public int Posicion;

Estructuras en C sharp

Embed Size (px)

Citation preview

Page 1: Estructuras en C sharp

Estructuras en C#, con ejemplos Usted desea utilizar las estructuras para mejorar el rendimiento de su aplicación y la claridad

del código. Las estructuras tienen ventajas sobre las clases en algunas situaciones, pero

también desventajas, sobre todo en el lenguaje de programación C#. Aquí podemos ver varios

ejemplos de estructuras y puntos de referencia, utilizando el lenguaje C#.

Uso de las estructuras En primer lugar, aquí podemos ver un programa sencillo de ejemplo que utiliza un tipo de

estructura en el lenguaje de programación C#. En este ejemplo se utiliza un proyecto de

consola (Console Application) para hacer la llamada a una simple estructura, que almacena

tres valores: dos números y un booleano.

/// <summary>

/// Las estructuras (Struct) son tipos por valor

/// Las clases (Class) son tipos por referencia

/// </summary>

class Program

{

static void Main(string[] args)

{

Simple s;

s.Posicion = 1;

s.Existe = false;

s.UltimoValor = 5.5;

//Fijese muy bien que es lo que sucede con los

atributos de la estructura

//Antes de llamar al método CambiaValoresStruct

CambiaValoresStruct(s);

Console.ReadKey();

}

static void CambiaValoresStruct (Simple s)

{

s.Posicion = 10;

s.Existe = true;

s.UltimoValor = 7.8;

}

}

/// <summary>

/// Definicion de la estructura

/// </summary>

struct Simple

{

public int Posicion;

Page 2: Estructuras en C sharp

public bool Existe;

public double UltimoValor;

};

Entender las estructuras

Las estructuras son tipos personalizados por valor que almacenan los valores de cada campo

juntos. No almacenan los datos de referencia (un puntero a la memoria), tales como la matriz

de caracteres en una cadena. ¿Qué dice MSDN que son las estructuras? "no requieren de un

montón de asignaciones." Se dice que las variables de tipo de estructura "directamente

contienen los datos de la estructura, mientras que una variable de un tipo de clase contiene

una referencia a los datos."

http://msdn.microsoft.com/en-us/library/aa288471(VS.71).aspx

En estricto rigor, estamos diciendo que las estructuras (structs) evitan la sobrecarga de

objetos en C#. Se pueden combinar varios campos, reduciendo la presión de la memoria y

mejora el rendimiento.

La recomendación es: usar las estructuras, cuando el diseño de la solución de software esté

completo y usted realizando una evaluación comparativa logra demostrar que las estructuras

son más beneficiosas que las clases.

Para mayores detalles, se recomienda visitar el capítulo 1 del libro .NET Framework 2.0

Application Development Foundation que se encuentra en el aula virtual del curso.

Juan José González Faúndez

Profesor DUOC UC

Programación II .NET (LDP3105)

[email protected]