Зміст:
Визначення - Що означає умовний оператор?
Умовний оператор в C # - це оператор, який приймає три операнди (умови, які потрібно перевірити), значення, коли умова є істинним, і значення, коли умова хибна.
Умовний оператор представлений символом '?:'. Перший операнд (вказаний перед '?:') - це оцінювальний (умовний) вираз. Він повинен бути таким, щоб тип оцінюваного вираження можна неявно перетворити на 'bool' або що реалізує оператор true, щоб уникнути помилок компіляції. Другий і третій операнди керують типом умовного вираження. Він частіше використовується при призначенні, а не як оператор, що створює помилки компіляції.
Якщо значення повернення першого операнда (умовний вираз) є істинним, оцінюється другий операнд. В іншому випадку оцінюється третій операнд. Отже, результат умовного оператора є результатом оцінки виразу, розглянутого для оцінки.
Для виразу, зазначеного як x? A: b, операнд a буде оцінено, якщо тільки операнд x (умовний вираз) повернеться істинним. В іншому випадку операнд b буде оцінений.
Цей термін також відомий як потрійний оператор або вбудований, якщо (iif).
Техопедія пояснює умовного оператора
Умовний оператор - єдиний потрійний оператор (що приймає три операнди) в C #. Він є альтернативою конструкції if-else, яка забезпечує кращу стислість із меншим кодом та кращою читабельністю. Під час компіляції компілятор C # переводить потрійний вираз у гілкові висловлювання, які можуть конденсувати кілька, якщо заяви та зменшити вкладення на рівні вихідного коду. Іноді код, згенерований для потрійного оператора, може підвищити продуктивність, перепорядкувавши деякі інструкції.
Властивості умовного оператора:
- Це право-асоціативне, що означає, що операції групуються у формі справа вліво.
- Він завжди оцінює один з двох виразів, зазначених після умовного символу оператора. Він ніколи не оцінює обох.
- Перший операнд повинен мати цілісний чи покажковий тип.
- Другий і третій операнди повинні бути конвертованими один в одного і не бути взаємно конвертованими в якийсь інший тип.
- Тип результату - це загальний тип, який є l-значенням, але лише якщо обидва другі та треті операнди одного типу та обидва є l-значеннями.
- Лише виклик призначення, приріст, декремент та новий вираз об'єкта можуть використовуватися як оператор ASA.
- Коли результат оцінки виразу за допомогою потрійного оператора використовується в операторі return return, його тип повинен відповідати типу повернення методу, що додає, для успішної компіляції.
- Коли результат не є постійним, тип умовного вираження заснований на більш поширеному одному з двох типів.