Loading...
kasskata avatar kasskata 492 Точки

C# Operator < ?? >: new operator or forgotten

Както си цъкам домашното и с Resharper си жънем ред след ред, и изведнъж написах един тернарен оператор да проверя null пропърти, и Resharper каза "Искаш ли да сменя ?: на ??" и аз TF?1!1.

Та след малко ровене намирам това. Останах очуден че не го знам, като съм бил 5-6 пъти на лекцията за Оператори и изрази. Влезнах и изтеглих последната презентация и вярно го няма.

Оказва се, че оператора проверява ако стойността отляво е NULL да изпише дясната част, а именно:

Console.WriteLine(<some null value> == null ?? "NULL value");

Та въпросът ми е повече към SoftUni team. Не е вкаран, защото е нов или ненужен или лоша практика да се използва или Other ?

Тагове:
0
Programming Basics 13/03/2015 19:20:23
quickben avatar quickben 966 Точки
Best Answer

Имаше го на последния лаб по КПК ;) 

Javascript еквивалента мисля, че е: var myNamespace = myNamespace || {}

1
13/03/2015 20:13:56
a_rusenov avatar a_rusenov 1103 Точки

Вкаран си е още от първото издание на C# Basics. И не е лоша практика, доста полезно си е при lazy loading например:

private Regex ImageRegex
{
    get
    {
        return this.imageRegex ?? (this.imageRegex = new Regex(ImageRegexPattern));
    }
}

 

1
Filkolev avatar Filkolev 4482 Точки

Има го по лекциите в основи на програмирането със сигурност, но по-рядко сме го ползвали. Чак по ооп в една лекция го видях пак, някакво демо май.

0
kasskata avatar kasskata 492 Точки

Ааа Супер. Мерси момчета. Щом го има вече съм спокоен.

1
quickben avatar quickben 966 Точки

Щом Каската е спокоен, светът е спокоен.... :)

4
Filkolev avatar Filkolev 4482 Точки

Слайд 34 от презентацията за оператори и изрази - за да си още по-спокоен ;)

0
XmUrF avatar XmUrF 363 Точки

И по наше време го имаше, но не в презентациите(или поне нямам спомен) а по време на писане на код да са го показали 1 или 2 пъти макс.

Даже тия дни докато мъчех проекта се сетих, че има такова нещо ама не си спомних как се прави, та трябваше да питам :).

Между другото не винаги може да замести тернарния вариант.

Например това:

Console.WriteLine("Category: {0}", ad.Category == null ? "" : ad.Category.Name);

не виждам как може да стане по горния начин. Ако го съкратиш като

Console.WriteLine("Category: {0}", ad.Category.Name ?? "");

ще гърми. Това във връзка с домашното по Performance в EF.

 

П.П.

Всъщност Наков го показа това в днешната лекция за XML... ма много набързо, точно щото не ставаше и трябваше да се ползва тернарния вариант.

0
13/03/2015 23:16:38
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.