Відповідь 1:

Рядок - це еталонний тип. Змінні типу посилань ніколи не містять значення свого типу всередині себе, а натомість містять інформацію, яку CLR може використовувати, щоб знайти об'єкт, на який вони посилаються…, якщо такий є. Вони також можуть мати значення null ... це означає, що вони не посилаються на БУДЬ-який об’єкт.

Отже, якщо змінна рядок є нульовою, ця змінна не асоціюється з жодним об'єктом рядка. Намагаючись отримати доступ до цього значення - це рядкове значення, на яке, на вашу думку, воно посилається, коли насправді воно посилається на відсутність такого значення, воно не призведе до нульового посилання на виняток, можливо, збій вашої програми, якщо без обробки.

Порожній рядок Чи стосується об'єкта…. власне місце в пам’яті. Це місце в пам'яті має значення, яке вказує, що насправді в рядку немає символів ... але це насправді об'єкт.

Тож порожня рядок є безпечнішою, оскільки доступ до неї не викине нульове виняткове посилання.

Змінна нульова рядок стосується взагалі жодної строки. Порожня рядок стосується об'єкта рядка, хоч і не містить символів.