如何使用>;=在C#开关表达式的左侧?

如何使用>;=在C#开关表达式的左侧?,c#,c#-8.0,C#,C# 8.0,我有这个枚举: public enum SIZE { Small = 0, Medium = 1, Large = 2, } 我想使用C#switch表达式,但我不确定如何创建“case”语句: App.devWidth = App.width switch { }; 我想做的是设置宽度,如下所示: Small = App.width < 700; Medium = App.width >= 700 && App.width < 1

我有这个枚举:

public enum SIZE
{
    Small = 0,
    Medium = 1,
    Large = 2,
}
我想使用C#switch表达式,但我不确定如何创建“case”语句:

App.devWidth = App.width switch
{

};
我想做的是设置宽度,如下所示:

Small = App.width < 700;
Medium = App.width >= 700 && App.width < 1200;
Large = App.width >= 1200;
Small=App.width<700;
中等=App.width>=700和&App.width<1200;
大=应用宽度>=1200;
有没有办法将这些应用程序宽度测试放在开关“=>”的左侧?

如果您使用的是C#8.0,则可以在使用以下关键字时使用

App.devWidth = App.width switch
{
    var x when x >= 0   && x < 700  => SIZE.Small,
    var x when x >= 700 && x < 1200 => SIZE.Medium,
    var x when x >= 1200            => SIZE.Large,
    _   => throw new Exception("Invalid width value")   // if width < 0
};
App.devWidth=App.width开关
{
变量x当x>=0&&x<700=>SIZE.Small时,
变量x当x>=700&&x<1200=>SIZE.Medium时,
当x>=1200=>SIZE.Large时的变量x,
_=>抛出新异常(“无效宽度值”)//如果宽度<0
};
上面的代码还检查
App.width>=0
,如果不检查,则抛出异常(不确定是否需要,如果不需要,则删除它)


您应该使用
when
关键字,如链接副本中所述