C#7中的条件语句

问题描述 投票:0回答:1

我想避免遵循以下写作风格。指出超出范围应该写一次

var a = 100;   // range 1..100_000
var b = 10_000; // range 100..30_000_000

if( a <= 1000)
{
    // avoid overflow
    if( b < a * 100)
    {
       // both out of range
    }
}
else if( b < 100_000)
{
    // both out of range
}

出现以下样式,乍看之下不适合...

if( a <= 1000 ? b < a * 100 : b < 100_000)
{
    // both out of range
}

switch语句?不好...

var lessEqual1000 = "a <= 1000";
var greater1000 = "a > 1000";
switch( a <= 1000 ? lessEqual1000 : greater1000)
{
case lessEqual1000 when b < a* 100:
case greater1000 when b < 100_000:
    // both out of range
}

什么是最好的?

======================================>

老板给我看了他的答案。肯定看起来更好。

if( b < (a < 1000 ? a * 100 : 100_000))
{
    // both out of range
}

我想避免遵循以下写作风格。指出一旦超出范围就应该写一次var a = 100; //范围1..100_000 var b = 10_000; //范围100..30_000_000 if(a <= 1000){if(...

if-statement switch-statement c#-7.0
1个回答
0
投票

我认为您可能需要类似的方法,将两个分支合并到一次语句中?

© www.soinside.com 2019 - 2024. All rights reserved.