using System;
namespace Articulo.CSharp.MetodosExtension
{
// Definición de la enumeración:
public enum Notas
{
F = 0,
D = 1,
C = 2,
B = 3,
A = 4
}
// Clase estática con métodos de extensión
// para la enumeración `Notas`:
public static class ExtensionesNotas
{
// Representa la nota mínima para pasar un examen:
public static Notas NotaMinima = Notas.D;
// Determina si la nota dada para un estudiante
// supera o iguala la nota mínima:
public static bool Paso (this Notas nota)
{
return nota >= NotaMinima;
}
}
public sealed class EnumeracionMetodosExtension
{
public static void Main()
{
Notas nota1 = Notas.D;
Notas nota2 = Notas.F;
Console.WriteLine("\n¿Con la nota `D` pasa?: {0}", nota1.Paso() ? "Sí" : "No");
Console.WriteLine("¿Con la nota `F` pasa?: {0}\n", nota2.Paso() ? "Sí" : "No");
}
}
}