// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: Genericos.cs
//
// Propósito: Demostrar el uso de las estructuras de datos
// genéricas en C#.
//
============================================================*/
using System;
using System.Collections.Generic;
namespace Recetas.Cap02
{
internal class Genericos
{
const double CONSTANTE_EULER = 0.577215664901;
const double MEDIA_AUREAL = 1.618033988;
const double PI = Math.PI;
const double E = Math.E;
const double RAIZ_DOS = 1.414213562;
public static void Main()
{
// Creación de un diccionario con nombre de constante matemática (key),
// y valor de la constante matemática (value):
Dictionary<string, double> constMatematicas = new Dictionary<string, double>();
constMatematicas.Add("Constante de Euler", CONSTANTE_EULER);
constMatematicas.Add("Media aureal", MEDIA_AUREAL);
constMatematicas.Add("Pi", PI);
constMatematicas.Add("Raíz de 2", RAIZ_DOS);
// Recorremos la colección para explorar los resultados
// con la estructura KeyValuePair<TKey, TValue>:
Console.WriteLine("Contenido del diccionario `constMatematicas`:");
foreach(KeyValuePair<string, double> constMatematica in constMatematicas)
{
Console.WriteLine("\tNombre constante: {0}, Valor constante: {1}",
constMatematica.Key, constMatematica.Value);
}
// Creación de una lista genérica para tipos double (constantes matemáticas):
List<double> listConstMatematicas = new List<double>();
listConstMatematicas.Add(CONSTANTE_EULER);
listConstMatematicas.Add(MEDIA_AUREAL);
listConstMatematicas.Add(PI);
listConstMatematicas.Add(E);
listConstMatematicas.Add(RAIZ_DOS);
// creación de una variable double desde la lista genérica:
double pi = listConstMatematicas[2];
// La exploración del contenido a través de un ciclo foreach
Console.WriteLine("\nConstantes en la lista genérica `listConstMatematicas`:");
foreach (double constante in listConstMatematicas)
{
Console.WriteLine("\tConstante matemática: {0}", constante);
}
}
}
}