¿Hay alguna manera de hacer algo similar en C#?Ruby-like 'a menos' para C#?
es decir.
i++ unless i > 5;
aquí es otro ejemplo
weatherText = "Weather is good!" unless isWeatherBad
¿Hay alguna manera de hacer algo similar en C#?Ruby-like 'a menos' para C#?
es decir.
i++ unless i > 5;
aquí es otro ejemplo
weatherText = "Weather is good!" unless isWeatherBad
¿Qué hay de:
if (i<=5) i++;
if (!(i>5)) i++;
funcionaría también.
Consejo: No hay unless
equivalente exacto.
EDITAR: Esto está mal ya que el Ruby unless
NO gira como mi idea. Respondí muy rápido.
Respuesta equivocada continuación
El syntactiaclly más cercana a la de base con las palabras clave y operadores sería algo así como
int x = 0;
do
{
x++;
} while (x < 5);
por lo que la idea sería. [hacer algo] a menos que [condición] se puede pensar como un reverso si – Konstantinos
[sí, es opuesto a 'si', pero no es un bucle] (http://en.wikibooks.org/ wiki/Ruby_Programming/Syntax/Control_Structures # unless_expression) – Reniuz
@Konstantinos: necesita revisar las otras respuestas, esto está mal ya que no entendí la sintaxis de ruby – xan
Hay ternario ?:
-operator:
i = i > 5 ? i : i + 1
//if i>5 then i, else i++
(Suponiendo que el código Ruby signifique lo que pienso)
OK, si 'a menos' es un ciclo, entonces eso es completamente diferente ... Debo mencionar que no hablo ruby. – phg
[no its not loop] (http://www.tutorialspoint.com/ruby/ruby_if_else.htm) – Reniuz
Este es un código horrible, y tampoco funciona en absoluto. Tu código es una complicada no operación. – CodesInChaos
Puede lograr algo como esto con los métodos de extensión. Por ejemplo:
public static class RubyExt
{
public static void Unless(this Action action, bool condition)
{
if (!condition)
action.Invoke();
}
}
y luego usarlo como
int i = 4;
new Action(() => i++).Unless(i < 5);
Console.WriteLine(i); // will produce 4
new Action(() => i++).Unless(i < 1);
Console.WriteLine(i); // will produce 5
var isWeatherBad = false;
var weatherText = "Weather is nice";
new Action(() => weatherText = "Weather is good!").Unless(isWeatherBad);
Console.WriteLine(weatherText);
enfoque interesante – Konstantinos
Las extensiones siempre salvan el día. –
no. Hay 'if' y'?: ', Pero ninguno funciona así. – CodesInChaos
Creo que generar un incremento fue un mal ejemplo, agregará uno más en caso de que sea útil. – Konstantinos