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

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

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

Студворк — интернет-сервис помощи студентам
Всем доброго дня, при написании следующего кода
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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2011, 00:46
Ответы с готовыми решениями:

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

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

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

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

Это просто сокращенный вариант if(объект == null) и всё, то что идет после ?? выполнится только если объект==null
Про него нечего гуглить, он прост как валенок, да и гугл не в моде уже - надо MSDN-ить сразу
http://social.msdn.microsoft.c... tor+%3F%3F
2
 Аватар для Refactor
96 / 89 / 29
Регистрация: 05.03.2010
Сообщений: 231
02.04.2011, 01:46  [ТС]
Цитата Сообщение от m0nax Посмотреть сообщение
Это просто сокращенный вариант if(объект == null) и всё
Вот это меня и интересовало, просто я думал, может еще гдето както применяется ентот оператор. Спасибо за линк, кстате я мсдэнил, но немного не так, вводил только ??, а ввести ?? operator недогадался, кстате по поводу гугла несогласен, он в моде, потому что решений нагуглить можно много вариантов (в том числе и достаточно хороших готовых решений), в то время как на MSDN только примеры, и то как начнеш читать, не каждому дано въехать что там написано бывает иногда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2011, 01:46
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru