Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. using System;
  2.  
  3. namespace Articulo.CSharp.MetodosExtension
  4. {
  5.     // Definición de la enumeración:
  6.     public enum Notas
  7.     {
  8.         F = 0,
  9.         D = 1,
  10.         C = 2,
  11.         B = 3,
  12.         A = 4
  13.     }
  14.    
  15.     // Clase estática con métodos de extensión
  16.     // para la enumeración `Notas`:
  17.     public static class ExtensionesNotas
  18.     {
  19.         // Representa la nota mínima para pasar un examen:
  20.         public static Notas NotaMinima = Notas.D;
  21.        
  22.         // Determina si la nota dada para un estudiante
  23.         // supera o iguala la nota mínima:
  24.         public static bool Paso (this Notas nota)
  25.         {
  26.             return nota >= NotaMinima;
  27.         }
  28.     }
  29.    
  30.     public sealed class EnumeracionMetodosExtension
  31.     {
  32.         public static void Main()
  33.         {
  34.             Notas nota1 = Notas.D;
  35.             Notas nota2 = Notas.F;
  36.             Console.WriteLine("\n¿Con la nota `D` pasa?: {0}", nota1.Paso() ? "Sí" : "No");
  37.             Console.WriteLine("¿Con la nota `F` pasa?: {0}\n", nota2.Paso() ? "Sí" : "No");
  38.         }
  39.     }
  40. }