C #Операторы IF и очень конкретные действия, из которых истинно

Итак, для начала я видел подобные сообщения:Как узнать, какое условие истинно, не используя оператор if

Это не совсем то, что мне нужно, хотя идея актуальна, в том смысле, что хотелось бы, чтобы это был более читаемый код.

Я думаю, что Switch — лучший выбор, но позвольте мне объяснить.

У меня есть это заявление:

if (input == string.Empty || typeComboBox.Text == null)
{
    MessageBox.Show("Nothing to encrypt!", "Nothing Selected!");            
    return null;
}

Итак, идея здесь в том, что раньше я разбивал этот оператор на два оператора «IF», ​​что не так уж и сложно, но ради удобочитаемости и моих постоянных усилий по сокращению кода я хотел объединить операторы в один..

Если ввод пуст, я хочу, чтобы первый аргумент в MessageBox.Show отображался, но не второй.

Если typeComboBox.Text имеет значение null, я хочу, чтобы отображался второй вариант, но не первый.

Если они оба являются истинными утверждениями, я хочу, чтобы оба появились.

Теперь моя цель состояла в том, чтобы сделать это без использования более одного теста или метода. По сути, я имею в виду это :, если я могу найти, какое условие истинно, и вывести результирующие данные в одном и том же операторе, это было бы идеально.

Я вижу, что коммутаторы являются вариантом, и я пока не очень хорошо в них разбираюсь, но я думаю, что это потребует от меня принятия решения на основе результатов этого теста и отправки этого результата на коммутатор; что было бы не идеально, так как я мог бы просто иметь два оператора if и меньше кода.

Есть ли способ сделать это в одном выражении? Это не обязательно для этой конкретной программы, но я хочу знать на будущее.

Спасибо!

0
задан Community 23 May 2017 в 12:06
поделиться