如何检查一个以上案件并根据该案件进行分配?
我有:
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>);
答案 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
语句。