Avatar ·

Что такое null/nil в C# и как с ним работать?

Всем привет! Начал изучать C# и столкнулся с концепцией null. В других языках я встречал nil или None, но в C# это, кажется, то же самое. Подскажите, что именно означает null в контексте ссылочных типов и как правильно с ним работать?

Я пробовал писать простой код, но получаю NullReferenceException. Вот пример:

public class Person { public string Name { get; set; } }

Person person = null;
Console.WriteLine(person.Name); // Ошибка: Object reference not set to an instance of an object.

Я ожидаю, что person.Name вернет пустую строку или null без исключения. Как избежать таких ошибок? Пробовал проверять через if (person != null), но это загромождает код. Слышал про ?. (null-conditional operator) и ?? (null-coalescing operator) — как их правильно применять? Также интересует, чем отличается null от default для значимых типов, и что такое nullable value types (int?)? Буду благодарен за примеры и ссылки на документацию.