Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
96 / 89 / 29
Регистрация: 05.03.2010
Сообщений: 231
1
.NET 4.x

Непонятный синтаксис "??"

02.04.2011, 00:46. Показов 1590. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго дня, при написании следующего кода
C#
1
2
3
4
5
6
7
8
9
10
        public  MembershipRepository Membership
        {
            get
            {
                if(_membershipRepository == null)
                    _membershipRepository = new MembershipRepository();
                return _membershipRepository;
            }
 
        }
Плагин ReSharper зеленой волнистой линией подчеркивает if(), при наведении на if выплывает сообщение "Convert to '??' expression", после, нажимаю на желтую лампочку (значок ReSharpe'ра), и выбираю Use '??' - operator, после чего конструкция if изменяется в другой код, и получается вот что:

C#
1
2
3
4
        public  MembershipRepository Membership
        {
            get { return _membershipRepository ?? (_membershipRepository = new MembershipRepository()); }
        }
В общих чертах ясно, что и как, но по гуглив я так и не смог найти ничего по поводу оператора '??', и непонятно где его толком применять и как он называется, и вообще после такой генерации код будет работать так как я ожидаю, может кто встречал такой синтаксис, киньте линк на литературу, или объясните где его использовать.

Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2011, 00:46
Ответы с готовыми решениями:

Непонятный синтаксис
Не первый раз встречаю вот такой синтаксис: public int Id { get; set; } Интересует строчка ...

Непонятный синтаксис вызова функции с лямбда-аргументом
Здравствуйте! Не могу понять как работает такой вызов функции: var x1 = Apply1(f, 100)(1, 11);...

Непонятный код
Что это такое и как оно называется ? Впервые с таким сталкиваюсь int a,b,m; а = 4; b=7; ...

Непонятный код в учебнике
Есть такая немного странная книжка "Изучаем C#, 3-издание, Стиллмен, Грин", там пример...

Непонятный вывод из цикла
Почему в консоль выводиться 2147483647? using System; namespace test { class MainClass...

2
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
02.04.2011, 01:23 2
Дык чего не ясно-то? ) Пример сам же и привел
Вот прям так и работает, второй кусок кода тоже самое что первый

Это просто сокращенный вариант if(объект == null) и всё, то что идет после ?? выполнится только если объект==null
Про него нечего гуглить, он прост как валенок, да и гугл не в моде уже - надо MSDN-ить сразу
http://social.msdn.microsoft.c... tor+%3F%3F
2
96 / 89 / 29
Регистрация: 05.03.2010
Сообщений: 231
02.04.2011, 01:46  [ТС] 3
Цитата Сообщение от m0nax Посмотреть сообщение
Это просто сокращенный вариант if(объект == null) и всё
Вот это меня и интересовало, просто я думал, может еще гдето както применяется ентот оператор. Спасибо за линк, кстате я мсдэнил, но немного не так, вводил только ??, а ввести ?? operator недогадался, кстате по поводу гугла несогласен, он в моде, потому что решений нагуглить можно много вариантов (в том числе и достаточно хороших готовых решений), в то время как на MSDN только примеры, и то как начнеш читать, не каждому дано въехать что там написано бывает иногда
0
02.04.2011, 01:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2011, 01:46
Помогаю со студенческими работами здесь

Непонятный код события
Это событие, которое присутствует в нескольких классах проекта. public class...

Непонятный мне код
Копался в разных сорцах и наткнулся на это xD IPAddress ip = null; ip...

Непонятный момент с IEnumerable
как это объяснить? неявное наследование от IEnumerable? using System; using System.Collections;...

Непонятный результат расчета функции
Всем доброго времени суток:) Пишу совсем простенькую программу на C#. Пользователь вводит значение...

Поясните непонятный момент, почему так?
Приветствую всех, вот решал и решил задачу, подсмотрел немного на форуме, и вот что я делаю в коде....

Непонятный синтаксис =>
Привет начала изучать ASP.NET Core и меня смушает такая строка кода public static IWebHostBuilder...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru