Ushbu kod satrini kimdir tushunishi mumkinmi?

int salesTeamId = person == null ? -1 : person.SalesTeam.Id;

Birgalikda beradigan narsalardan:

  1. int SalesTeamId o'zgaruvchidir va shaxs o'zgaruvchiga tayinlanmoqda.

Shundan keyin men yo'qolmadim. Har qanday yo'l-yo'riq?

6

7 javoblar

Bu uch tomonlama bayonnomadir. Buni o'qib beradigan uchun if/else blokiga tarjima qildim.

int salesTeamId;

if(person == null)
{
   salesTeamId = -1;
}
else
{
   salesTeamId = person.SalesTeam.Id;
}
12
qo'shib qo'ydi
@Dylan: O'tkazib yuborilganlarni ko'rsatganingiz uchun rahmat .SalesTeam murojaatnomasi
qo'shib qo'ydi muallif Akron, manba

Bu Uchinchi operator . Agar if kodi ifodasi quyidagicha:

int salesTeamId;
if( person == null )
{
    salesTeamId = -1;
}
else
{
    salesTeamId = person.SalesTeam.Id;
}
8
qo'shib qo'ydi

Bu shuni bildiradiki,

int salesTeamId;

if (person == null) 
   salesTeamId = -1;
 else 
   salesTeamId = person.SalesTeam.Id;
4
qo'shib qo'ydi

Uni shartli operator deb atashadi.

Shartli operator (? :) - uchinchi operator (uchta oladi)   operandlar). Shartli operator quyidagicha ishlaydi:

     
      
  • Birinchi operand yopiq tarzda aylantiriladi. Bu baholanadi va   Barcha yon ta'sirlar davom etmasdan tugallangan.
  •   
  • Birinchi operand bo'lsa   haqiqiy (1) deb baholanadi, ikkinchi operand baholanadi.
  •   
  • Birinchi bo'lsa   operand false (0) deb baholanadi, uchinchi operand baholanadi.
  •   

Sizning misolingiz ushbu kodga o'xshashdir:

int salesTeamId;
if (person == null)
{
   salesTeamId = -1;
}
else
{
   salesTeamId = person.SalesTeam.Id;
}
3
qo'shib qo'ydi

Uning yopiq if statement (uchinchi operator deb ataladi).

Asosan uning tekshiruvi null bo'lsa, qaytarish -1 boshqasini qaytarishi mumkin. SalesTeam.id. Qaytish qiymati to'g'ridan-to'g'ri salesTeamId o'zgaruvchiga beriladi.

int salesTeamId;
if(person == null)
{
salesTeamId = -1;
}
else
{
salesTeamId = person.SalesTeam.Id
}

to'g'ridan-to'g'ri tengdir

2
qo'shib qo'ydi

Bunga teng

int salesTeamId;
if (person == null)
    salesTeamId = -1;
else
    salesTeamId = person.SalesTeam.Id;

Check ?: Operator (C#)

2
qo'shib qo'ydi

Agar shaxs null bo'lsa, SalesTeamId -1ga tayinlanadi. Agar null null bo'lsa, SalesTeamId person.SalesTeam.Id tayinlanadi.

Uchinchi operator bir satrda joylashgan if-then-else ifodasidir (odatda, u bir nechta satrlar bo'ylab tarqalishi mumkin, biroq bu nuqta biroz mag'lubiyatga uchraydi).

Ba'zi parantez qo'shish uchun narsalarni tozalash mumkin:

int salesTeamId = (person == null ? -1 : person.SalesTeam.Id);

Quyidagi psödo kod ham yordam berishi mumkin:

int salesTeamId = (IF person == null THEN USE -1 ELSE USE person.SalesTeam.Id );
1
qo'shib qo'ydi