Spisu treści:
Definicja - Co oznacza operator warunkowy?
Operator warunkowy w języku C # to operator, który pobiera trzy operandy (warunki do sprawdzenia), wartość, gdy warunek jest prawdziwy, i wartość, gdy warunek jest fałszywy.
Operator warunkowy jest reprezentowany przez symbol „?:”. Pierwszy operand (określony przed „?:”) To wyrażenie oceniające (warunkowe). Musi być taki, aby typ wartościowanego wyrażenia mógł być domyślnie przekonwertowany na „bool” lub aby implementował operator true, aby uniknąć błędów kompilacji. Drugi i trzeci operand kontrolują rodzaj wyrażenia warunkowego. Jest częściej używany w przypisaniu, a nie jako instrukcja powodująca błędy kompilacji.
Jeśli zwracana wartość pierwszego operandu (wyrażenie warunkowe) jest prawdziwa, drugi operand jest oceniany. W przeciwnym razie trzeci argument jest oceniany. Stąd wynik operatora warunkowego jest wynikiem oceny wyrażenia branego pod uwagę do oceny.
Dla wyrażenia podanego jako x? A: b, operand a zostanie oceniony, jeśli tylko operand x (wyrażenie warunkowe) zwróci true. W przeciwnym razie argument b zostanie oceniony.
Termin ten jest również znany jako operator trójskładnikowy lub inline if (iif).
Techopedia wyjaśnia operatora warunkowego
Operator warunkowy jest jedynym operatorem trójskładnikowym (biorąc trzy operandy) w języku C #. Stanowi alternatywę dla konstrukcji if-else, która zapewnia lepszą zwięzłość, mniej kodu i lepszą czytelność. Podczas kompilacji kompilator C # tłumaczy potrójne wyrażenie na instrukcje gałęzi, które mogą skondensować wiele instrukcji if i zmniejszyć zagnieżdżanie na poziomie kodu źródłowego. Czasami kod wygenerowany dla trójskładnikowego operatora może zwiększyć wydajność poprzez zmianę kolejności niektórych instrukcji.
Właściwości operatora warunkowego to:
- Jest skojarzony z prawej, co oznacza, że operacje są pogrupowane od prawej do lewej.
- Zawsze ocenia jedno z dwóch wyrażeń określonych po symbolu operatora warunkowego. Nigdy nie ocenia obu.
- Pierwszy operand musi być typu integralnego lub wskaźnikowego.
- Drugi i trzeci operand muszą być konwertowalne na siebie i nie mogą być wzajemnie konwertowane na inny typ.
- Typ wyniku jest typem wspólnym, który jest wartością l, ale tylko wtedy, gdy oba drugi i trzeci operand są tego samego typu i oba są wartościami l.
- Tylko instrukcja przypisania, inkrementacja, dekrementacja i wyrażenie nowego obiektu mogą być użyte jako instrukcja.
- Gdy wynik oceny wyrażenia przy użyciu operatora trójskładnikowego zostanie użyty w instrukcji return metody, jego typ powinien być zgodny z typem zwrotnym metody obejmującej, aby kompilacja przebiegła pomyślnie.
- Gdy wynik nie jest stały, typ wyrażenia warunkowego jest oparty na bardziej powszechnym jednym z dwóch typów.
