有没有办法在 C# 中做类似的事情?
IE。
i++ unless i > 5;
这是另一个例子
weatherText = "Weather is good!" unless isWeatherBad
有没有办法在 C# 中做类似的事情?
IE。
i++ unless i > 5;
这是另一个例子
weatherText = "Weather is good!" unless isWeatherBad
您可以使用扩展方法实现类似的目标。例如:
public static class RubyExt
{
public static void Unless(this Action action, bool condition)
{
if (!condition)
action.Invoke();
}
}
然后像这样使用它
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);
关于什么 :
if (i<=5) i++;
if (!(i>5)) i++;
也可以。
提示:没有unless
确切的等价物。
编辑:这是错误的,因为 Rubyunless
不像我的想法那样循环。我回答得太快了。
下面回答错误
与基本关键字和运算符最接近的语法类似于
int x = 0;
do
{
x++;
} while (x < 5);
有'三元运算?:
符:
i = i > 5 ? i : i + 1
//if i>5 then i, else i++
(假设红宝石代码意味着我的想法)