از چندین قابلیت اضافه شده به سی شارپ7 یکیش اپراتور شرطی (؟ :)، که معمولا به عنوان اپراتور مشروح سه گانه شناخته می شود، یکی از دو مقدار را بسته به مقدار یک عبارت بولین باز می گرداند

Boolean Expression ? First Statement : Second Statement

همونطور که می توانید در مثال بالا ببینید، اپراتور سه جانبه شامل سه بخش است. بخش اول (قبل؟) شامل عبارت شرطی است که مقدار boolean را true یا false می نامد. بخش دوم (بعد از قبل و قبل از :) حاوی بیانیه ای است که اگر بیان شرطی در قسمت اول ارزش واقعی را بررسی می کند، بازگردانده می شود. بخش سوم شامل عبارت دیگر است که اگر عبارت شرطی به اشتباه بازگردانده شود بازگردانده می شود.

یه مثال دیگه ا در نظر بگیرید که بیان شرطی x> y درست است و پس از آن اولین دستور را اجرا می کند.

int x = 20, y = 10;

var result = x > y ? "x is greater than y" : "x is less than or equal to y";

Console.WriteLine(result);

نتیجه خروجی میشه این

x is greater than y


اپراتور سه جانبه می تواند مقدار هر نوع داده را بازگرداند. بنابراین بهتر است آن را در متغیر تایپ شده به صورت ضمنی ذخیره کنید == var
به عنوان مثال، می تواند مقدار عدد صحیح را به صورت زیر نشان دهد

int x = 20, y = 10;

var result = x > y ? x : y;

Console.WriteLine(result);


نتیجه خروجی==>

20

یه مثال پیشرفته

double sinc(double x) => x != 0.0 ? Math.Sin(x) / x : 1;

Console.WriteLine(sinc(0.1));
Console.WriteLine(sinc(0.0));
// خروجی
// 0.998334166468282
// 1


و پیشرفته تربصورت آرایه  از سمپل های ماکروسافت

var smallArray = new int[] { 1, 2, 3, 4, 5 };
var largeArray = new int[] { 10, 20, 30, 40, 50 };

int index = 7;
ref int refValue = ref ((index < 5) ? ref smallArray[index] : ref largeArray[index - 5]);
refValue = 0;

index = 2;
((index < 5) ? ref smallArray[index] : ref largeArray[index - 5]) = 100;

Console.WriteLine(string.Join(" ", smallArray));
Console.WriteLine(string.Join(" ", largeArray));
// خروجی
// 1 2 100 4 5
// 10 20 0 40 50


یه مثال ساده تر برای درک بیشتر


 int a, b, value;
             a = 20;
             b = 10;
            value = a > b ? a : b;
            Console.WriteLine("bigger Value:" + value);
            

            Console.ReadKey();



نتیجه=

bigger Value:20