Una reflexión sobre el puzzle de la oferta de ilitia

Ante todo, mi felicitación a ilitia por lo que considero, como expresé en el post de Luis Ruiz al respecto, una excelente idea. Y el puzzle en sí mismo es, a mi modo de ver, genial.


Reflexionando un poco sobre el asunto, me he dado cuenta de que me equivoqué al afirmar allí que había que tener idea de C# 3.0 y LINQ para atacarlo. Para resolver el puzzle, en principio, bastaban los iteradores y la sentencia yield, disponibles en C# desde el año 2005:


public static class ExtensionesChuckNorris
{
    public static IEnumerable<int> To(this int a, int b)
    {
          for (int i = a; i < b; i++) yield return i;
    }

    public static IEnumerable<int> DownTo(this int a, int b)
    {
          for (int i = a – 1; i >= b; i–) yield return i;
    }
}

Esto me ha vuelto a traer a la mente una reflexión de mi buen amigo Rodrigo Corral, que me decía hace unos meses que según su experiencia mucha gente que programa hoy en VS 2005 y C# aún no conoce características introducidas en C# 2.0 como las antes mencionadas. Aquello fue lo que me dio la idea de incluir en el libro “C# 3.0 y LINQ” cuatro capítulos (métodos anónimos, genéricos, iteradores y tipos valor anulables) que explicaran esos conceptos como antesala de la presentación de las nuevas características que ahora se incorporan al lenguaje.


Desde aquí mi exhortación a los programadores de C# a que se esmeren en conocer en anchura y en profundidad el lenguaje que utilizan; no hay nada en él que resulte superfluo o inútil. De la misma manera, exhorto a los directores y jefes de proyecto a que potencien ese conocimiento en sus programadores; algo que sin dudas se revertirá en múltiples beneficios para la causa común.

Octavio Hernandez

Desarrollador y consultor en tecnologías .NET. Microsoft C# MVP entre 2004 y 2010.

3 comentarios en “Una reflexión sobre el puzzle de la oferta de ilitia

  1. espinete:

    >> alguna buena referencia donde explique bien sentencia yield ?

    – Bueno, espero que mi libro no lo haga mal ;-).
    – Es un tema en general poco tratado en los libros de C# 2.0, y probablemente se conocía poco porque le faltaba la “compañía” de otras construcciones que sí están ahora en C# 3.0.
    – Un libro donde por supuesto se describe yield con todos sus pelos y señales es “The C# Programming Language” de Anders Helsberg y otros (en inglés).

    >> Y tampoco poner this a un parámetro: this int a

    Los métodos extensores (en los que se antepone this al primer parámetro) es una característica de C# 3.0.

    Salu2 – Octavio

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *