如何使用<condition>检查两个以上的值?<if true =“”>:<if false =“”>?

时间:2018-10-02 17:53:03

标签: c#

如何检查一个以上案件并根据该案件进行分配?

我有:

str[1] = (Setting.DBL(this.fieldTxt3.Tag.ToString()) == 1000 ? Setting.IP2 : Setting.IP4);
str[3] = (Setting.DBL(this.fieldTxt3.Tag.ToString()) == 1000 ? "TBSS2" : "TBSS4");

但是我想要更多类似的东西:

str[1] = (Setting.DBL(this.fieldTxt3.Tag.ToString()) >= 3000 ? Setting.IP5 : Setting.IP4 : <additional options>);   
str[3] = (Setting.DBL(this.fieldTxt3.Tag.ToString()) == 1000 ? "TBSS2" : "TBSS4" : <additional options>);

1 个答案:

答案 0 :(得分:8)

所需的功能称为“匹配表达式”,尚未将其添加到C#中。它可能会在将来的版本中。有关详细信息,请参见roslyn github forum

建议语法类似于:

 double area = someShape switch (
    case Line line: 0,
    case Rectangle r: r.Width * r.Height,
    case Circle c: Math.PI * c.Radius * c.Radius,
    case *: throw new ApplicationException()
)

在这里我们要说的是“打开someShape;如果是一条线,则其面积为零...”等等。

在此之前,请使用if语句。