Estaba leyendo algo de código C# mío hoy y encontré esta línea:¿Te gustan los idiomas que te permiten poner el "entonces" antes del "si"?
if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated) return;
en cuenta que se puede decir sin necesidad de desplazarse de que se trata de un "if" que trabaja con ItemContainerGenerator.Status, pero no se puede Dígale fácilmente que si la cláusula "si" se evalúa como "verdadera", el método regresará en ese punto.
Realísticamente debería haber movido la declaración de "retorno" a una línea por sí mismo, pero me hizo pensar en los idiomas que permiten primero la parte "entonces" de la declaración. Si C# permitía, la línea podría tener este aspecto:
return if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated);
Esto podría ser un poco "argumentativo", pero me pregunto lo que la gente piensa acerca de este tipo de construcción. Podría servir para que las líneas como la de arriba sean más legibles, pero también podría ser desastroso. Imagínese este código:
return 3 if (x > y);
Lógicamente, sólo puede volver si x> y, porque no hay "otra cosa", pero parte de mí mira eso y piensa, "seguimos regresando si x < = y si? Entonces, ¿qué estamos volviendo?
¿Qué opina del constructo "entonces antes del si"? ¿Existe en tu idioma de elección? ¿Lo usas a menudo? ¿C# se beneficiaría de esto?
¿Qué hay de 'x = 3 si (a = b)' –
Interesante, pero más a menudo que el 'si' desencadena un bloque de código, no es una operación simple. – UpTheCreek
Sí, tal vez solo tiene sentido en declaraciones de devolución donde es un poco menos ambiguo. ¡Responda con una respuesta completa si lo desea, @codeka! Es CW así que no es para rep. –