Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 393новые вакансии за сутки·54 487вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 590
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 396 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python8 807
  • Облачные технологии6 651
  • QA вакансии2 171
  • Android1 317
  • Инженер данных867
  • Продакт-менеджер313

Разработка

  • iOS1 229
  • Backend вакансии1 199
  • AI вакансии548
  • Fullstack вакансии496
  • Frontend вакансии424
  • Mobile вакансии28

По стеку

  • Go5 239
  • Java3 132
  • Kotlin1 122
  • Node.js1 007
  • Rust852
  • .NET662
  • PHP319
  • C++268
  • C#207

DevOps и инфраструктура

  • Kubernetes3 912
  • Linux-инфраструктура2 845
  • DevOps вакансии2 680
  • Terraform / IaC2 177
  • Мониторинг и Observability1 072
  • CI/CD913
  • SRE307
  • Кибербезопасность34

Аналитика и данные

  • Аналитик данных528
  • Data Scientist433
  • Бизнес-аналитик399
  • Системный аналитик67

Другие направления

  • Проджект-менеджер105
  • UI/UX дизайн68
  • Ручное тестирование14

По регионам

  • Вакансии в США25 969
  • Вакансии в Европе10 284
  • Работа в России3 634
  • Вакансии в Канаде2 280

По формату

  • Удалённые вакансии42 910
  • Релокация в США25 969
  • Гибридная работа5 672
  • Офисная работа4 445

По уровню

  • Senior вакансии22 739
  • Middle вакансии11 602
  • Junior вакансии3 909

Сейчас нанимают

Все компании
  • Rakuten189 вакансий
  • Wise187 вакансий
  • ASML164 вакансии
  • Grab134 вакансии
  • Celonis47 вакансий
  • Spotify37 вакансий
  • Infobip28 вакансий
  • Adyen27 вакансий
  • Monzo19 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К подготовке по вакансии←К теме C#Все вопросы
C#JuniorКодинг

Что такое nullable тип в C# и как использовать оператор null-coalescing ???

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Nullable<T> (запись T?) позволяет значимому типу хранить null. Оператор ?? возвращает левый операнд, если он не null, иначе — правый; ??= присваивает правый операнд только при null.

Nullable-типы в C#

Nullable-тип позволяет значимому типу (int, bool, DateTime и т.д.) принимать значение null. Реализуется через структуру Nullable<T>, которая имеет сокращённую запись T?. Под капотом хранятся два поля: HasValue (bool) и Value (T).

int? age = null;       // Nullable<int>
bool? flag = true;

if (age.HasValue)
    Console.WriteLine(age.Value);
else
    Console.WriteLine("age не задан");

Оператор null-coalescing ??

Оператор ?? возвращает левый операнд, если он не равен null, иначе — правый. Это удобная альтернатива тернарному оператору для проверки на null.

int? score = null;
int result = score ?? 0;   // result = 0

string? name = GetName();  // может вернуть null
string display = name ?? "Аноним";

Оператор ??= (null-coalescing assignment, C# 8+)

Присваивает правый операнд переменной, только если она равна null.

List<string>? items = null;
items ??= new List<string>();
items.Add("первый");

Цепочки ??

Операторы можно цеплять: вычисляется первый не-null результат слева направо.

string? a = null;
string? b = null;
string c = "default";
string result = a ?? b ?? c;  // "default"

Оператор ?. (null-conditional) в связке с ??

Оператор ?. возвращает null вместо NullReferenceException, и его часто объединяют с ?? для безопасного обращения к членам объекта.

string? GetCity(User? user)
    => user?.Address?.City ?? "Неизвестно";

Получение значения с дефолтом

У Nullable<T> есть метод GetValueOrDefault(defaultValue) — альтернатива ?? для простых случаев.

int? x = null;
int val = x.GetValueOrDefault(-1);  // -1
// Эквивалентно: x ?? -1

Подводные камни

  • Обращение к Value без проверки HasValue бросает InvalidOperationException, а не NullReferenceException — путает при отладке.
  • Nullable<T> — структура, но boxing превращает её в null или упакованный T, что теряет информацию о типе при рефлексии.
  • Правый операнд ?? вычисляется лениво только в случае, когда левая часть null — но если это метод с побочными эффектами, поведение может удивить.
  • ??= работает только для null-проверки; проверять другие falsy-значения (0, пустую строку) им нельзя.
  • Смешение int? и int в арифметических выражениях: результат имеет тип int?, и это иногда приводит к неожиданному null на выходе.
  • В LINQ-запросах EF Core nullable-столбцы могут не совпадать с C# nullable-типами, если миграции не настроены под IsRequired() / IsNullable().
  • Начиная с C# 8 есть ещё nullable reference types (string?) — они не то же самое, что Nullable<string>, и смешивать их семантику опасно.

Типичные ошибки

  • Путать nullable-типы и оператор null-coalescing с похожим механизмом из другой версии или платформы.
  • Игнорировать runtime-границы C#: lifecycle, DI scope, SQL translation, UI thread или platform API.
  • Не обсуждать null/empty/error cases и поведение под нагрузкой.

Что проверяет интервьюер

  • Кандидат объясняет nullable-типы и оператор null-coalescing на конкретном примере, а не только определением.
  • Указывает последствия для производительности, тестируемости и поддержки.
  • Различает документированное поведение текущего стека и устаревшие практики.

Как вы знаете этот вопрос?

Проверить себя по теме C# →

Источники

  • https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-value-types
  • https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-coalescing-operator
←Предыдущий вопросОбъясните оператор `using` и интерфейс `IDisposable` в C#.Следующий вопрос→Как работают `Span<T>` и `Memory<T>` и почему они важны для high-performance .NET?

Связанные темы

C#implementationruntime-reasoning

Вакансии с этим навыком

C# вакансии
  • QA Fullstack (C#)
  • Python-разработчик (OCR)
  • C#/.NET Backend Developer
  • Fullstack-разработчик (C#/.NET, Python, Web)
  • Game Programmer

Частые вопросы на собеседовании

  • В чём различия между value types и reference types в C#?
  • В чём разница между IEnumerable<T> и IQueryable<T>?
  • Что такое LINQ? Приведите примеры часто используемых LINQ-операторов.
  • Как работает оператор lock и что такое deadlock?