Как я могу использовать> = слева от выражения переключателя C#? - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть этот Enum:

public enum SIZE
{
    Small = 0,
    Medium = 1,
    Large = 2,
}

Я хотел бы использовать выражение переключателя C#, но я не уверен, как создать операторы "case":

App.devWidth = App.width switch
{

};

То, что я хочу сделать, это установить ширину следующим образом:

Small = App.width < 700;
Medium = App.width >= 700 && App.width < 1200;
Large = App.width >= 1200;

Есть ли способ, которым я могу поставить эти тесты для ширины приложения на левой стороне "=>" в переключатель

1 Ответ

0 голосов
/ 10 апреля 2020

Если вы используете C# 8.0, вы можете использовать ключевое слово when, как показано ниже:

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.width >= 0, и выдает исключение, если нет (не уверен требуется ли вам это, но если нет, просто удалите его).

Демо-версия

...