Описание тега switch-expression

В C# и Java выражения переключателя являются альтернативой оператору переключения, который возвращает значение.
13 ответов

Оператор переключения нескольких переменных в C#

Я хотел бы использовать оператор switch, который принимает несколько переменных и выглядит так: switch (intVal1, strVal2, boolVal3) { case 1, "hello", false: break; case 2, "world", false: break; case 2, "hello", false: etc .... } Есть ли способ сде…
10 ответов

C# как использовать enum с switch

Я не могу понять, как использовать переключатели в сочетании с перечислением. Подскажите, пожалуйста, что я делаю не так и как это исправить? Я должен использовать перечисление, чтобы сделать базовый калькулятор. public enum Operator { PLUS, MINUS, …
28 фев '13 в 12:56
15 ответов

Объединить возврат и переключатель

Как я могу совместить return а также switch case заявления? Я хочу что-то вроде return switch(a) { case 1:"lalala" case 2:"blalbla" case 3:"lolollo" default:"default" }; Я знаю об этом решении switch(a) { case 1: return "lalala"; case 2: return "bla…
26 июл '10 в 10:53
2 ответа

Возвращает универсальное значение из выражения switch в Java-12

Мне интересно, есть ли возможность вернуть универсальный тип из выражения переключателя Java 12. Базовый код может выглядеть так: boolean result = switch(ternaryBool) { case TRUE -> true; case FALSE -> false; default -> throw new IllegalArg…
1 ответ

Несколько случаев в переключателе C# 8.0

В традиционном переключателе C# у нас есть такая конструкция, где мы можем объединять несколько случаев. Как это можно сделать в новой конструкции коммутатора C# 8.0? switch (value) { case 1: case 2: case 3: //do some stuff break; case 4: case 5: ca…
2 ответа

Выражения переключателя intellij Java 12 не работают

Я пытаюсь использовать Java 12 в IntelliJ, но при попытке запустить мое приложение возникает ошибка Error:(57, 32) java: switch expressions are a preview feature and are disabled by default. (use --enable-preview to enable switch expressions) Я доба…
4 ответа

Что произойдет, если мое выражение переключателя C# не является исчерпывающим?

В C# 8 были введены выражения переключения. Что происходит, если выражение switch не является исчерпывающим? Другими словами, что произойдет, если я не проверю все возможные значения? static void Main(string[] args) { int x = 1; int imExhaustive = x…
09 май '19 в 21:54
7 ответов

C# 8 переключить выражение несколько случаев с одинаковым результатом

Как нужно написать выражение-переключатель для поддержки нескольких случаев, возвращающих один и тот же результат? С C# до версии 8 переключатель может быть записан так: var switchValue = 3; var resultText = string.Empty; switch (switchValue) { case…
20 июн '19 в 00:40
1 ответ

Оператор переключения C# 8.0 с void

Я получаю следующую ошибку: Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement public void LogClientSideErrors(string message, ValidationType validationType) => validationType switch { Valida…
11 авг '20 в 16:34
2 ответа

Полная асинхронность при использовании конвейера

Если у меня есть приложение, которое использует конвейер со многими этапами, которые нужно выполнить, используя foreach на всех этапах и звоните: CanExecute Execute Интерфейс такой: public interface IService { bool CanExecute(IContext subject); ICon…
2 ответа

Каков приоритет операторов для новых выражений переключателя C# 8.0?

Я только что обновил свой текущий проект до недавно выпущенных.NET Standard 2.1 и C# 8.0 и решил преобразовать несколько больших switchоператоров в новый, гораздо более компактный синтаксис выражений. Поскольку возвращенные значения в дальнейшем исп…
2 ответа

java - вернуть строку с регистром переключателя

Я пробовал использовать перечисление в первый раз. Для некоторых тестов я хочу переопределить метод toString моего перечисления и вернуть String с выбранным перечислением. Вот мой код: @Override public String toString() { return "Fahrzeuge{" + switc…
1 ответ

Выражение переключателя в C# 8 недостаточно "умное"

Этот код прост, обычный переключатель: bool? isSomething = strSomething switch { "I" => true, "D" => false, _ => null, }; Однако компилятор выдает следующую ошибку: CS0037 Невозможно преобразовать null в 'bool', поскольку это тип значения, …
09 сен '19 в 00:54
3 ответа

С # 8.0 возвращаемый тип выражения переключения и нулевое значение

Я пытаюсь понять, как работают выражения переключателя C# 8.0, и у меня есть несколько вопросов. Почему нельзя использовать nullзначение в случае по умолчанию? Компилятор бросаетCannot convert null to 'int' because it is a non-nullable value type ош…
19 ноя '19 в 00:59
2 ответа

Выражения переключателя C# нулевой регистр

Я провел небольшое исследование, но не нашел ответа на этот вопрос. Есть ли для представления нулевого случая в выражениях переключателя С # 8 таким образом, чтобы компилятор распознавал и не запускал предупреждение для ссылкиx в базовом случае при …
4 ответа

Использование блоков в выражении переключателя C#?

Мне не удалось найти документацию по этой проблеме. (возможно, я просто плохо использую Google...) Я предполагаю, что ответ отрицательный, однако я не понял, где это рассматривается в документации. Если быть точным, у меня следующий вопрос. Предполо…
14 янв '20 в 10:50
1 ответ

Несколько операторов в выражении переключателя с # 8

Выражение переключения было введено в C# 8. В кодовой базе есть много мест, которые можно переписать в новом стиле. Итак, у меня есть код, который используется для разбора пакетов из потока байтов: switch (command) { case Command.C1: return new P1()…
24 янв '20 в 07:04
1 ответ

Переключение делегирования не рассматривается в покрытии кода

При работе с корпусами переключателей я обнаружил следующую проблему. R# показал мне упрощение оператора switch, который в основном привязывает делегата к метке case, когда вы назначаете переменную. var shape = shapeType switch { ShapeType.Ellipse =…
1 ответ

Выражение переключателя в функции Azure вызывает исключение

Написание функции C# Azure и попытка использовать выражения переключателя C#8. Согласно документам https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.switchexpressionexception?view=netcore-3.1, они показывают, что это должно…
30 апр '20 в 22:33
2 ответа

Как объявить параметры, возвращаемые выражением переключателя C# 8?

Я смотрю на этот код: public enum MO { Learn, Practice, Quiz } public enum CC { H } public class SomeSettings { public MO Mode { get; set; } public CC Cc { get; set; } } static void Main(string[] args) { var Settings = new SomeSettings() { Cc = CC.H…
23 ноя '19 в 17:34