Когда вы определяете string s;
, вы определяете только ссылку, которая в настоящее время вообще ни на что не указывает.Поскольку строка является ссылочным типом, компилятор не будет генерировать string s = new String(..);
.Вы можете понимать это как string s = null;
будет результатом компиляции.
Для типов значений, таких как int, дело обстоит иначе.Например, когда вы определяете int i;
, он компилируется в int i = 0;
, где 0 - это значение по умолчанию.