Строки
string plant = "leaf"; хранит четыре буквы leaf, а Console.WriteLine(plant) пишет leaf. Кавычки остаются в файле. На экране их нет. Прошлая страница хранила целое число 4 без кавычек вокруг него. Здесь буквы держит пара кавычек, а отсутствующая пара заставляет build писать ошибку. Публичный класс оставьте с именем Pine. SDK вы снова не устанавливаете.
Кавычки держат буквы
Откройте файл Pine. Имя класса остаётся Pine. Эта страница тип не переименовывает. Прошлая страница держала int count = 4; без кавычек и без клавиатуры. Эта страница то число не держит. Удалите строку int, если она ещё есть. Удалите любую строку ReadLine. В файле, который вы храните, нет ожидания и нет строки целого числа. Буквы пишет только строка записи, которая использует имя.
Внутри Main строка хранения — string plant = "leaf";. string — слово вида. Оно говорит, что это имя держит буквы. plant — имя, и оно начинается с маленькой p. Знак = сохраняет буквы. Дальше идёт пара. Первая кавычка открывает буквы. Четыре буквы — l, e, a, f, в этом порядке, все маленькие. Вторая кавычка закрывает буквы. Между этими двумя кавычками больше ничего нет: ни пробела, ни лишней буквы, ни второго слова. Точка с запятой заканчивает строку. Эта строка экран не пишет. Хранение — не запись. Через эту строку экран остаётся пустым. Кавычки — часть строки хранения. Они не часть значения, которое имя держит после того, как строка его сохранила.
Строка записи — голое имя: Console.WriteLine(plant);. Без кавычек. C# читает имя plant, пишет буквы, которые это имя держит, и заканчивает строку. Для файла, который вы храните, эти буквы — l, e, a, f. Знаки кавычек на экране нет. Буквы самого имени — p, l, a, n, t — на экране нет. string на экране нет. Console на экране нет. Точки с запятой на экране нет. Сохраните файл.
Файл, который вы храните
Сохраните эту учебную форму. Одно слово вида, string. Одно имя, plant. Одна пара кавычек. Четыре буквы между ними, leaf. Одна строка записи, и эта строка использует голое имя.
using System;
public class Pine
{
public static void Main()
{
string plant = "leaf";
Console.WriteLine(plant);
}
}
Читайте сверху. using System; готовит короткие имена. public class Pine называет тип. public static void Main() — место, где runtime начинает. Ни одно из этих слов не буквы на экране. Строка хранения — string plant = "leaf";. Эта строка хранит буквы. Ничего не пишет. Console.WriteLine(plant); — единственная строка записи. Она пишет leaf и заканчивает строку. Одна строка. Без знаков кавычек на этой экранной строке.
Запустите через dotnet run. Программа пишет leaf. Она не ждёт, пока вы наберёте. Буквы уже были в файле. Если dotnet run ждёт, в файле ещё есть ReadLine. Удалите эту строку и оставьте string plant = "leaf";. Экран показывает leaf, одна строка, четыре буквы, без знаков кавычек. Если экран показывает plant, на строке записи вокруг имени стоят кавычки: Console.WriteLine("plant");. Эти кавычки помечают буквы p, l, a, n, t. C# имя не ищет, поэтому сохранённый leaf не пишется. В файле, который вы храните, на строке записи голое имя, а кавычки вокруг leaf на строке хранения. Если экран показывает 4, в файле ещё целое число с прошлой страницы. Файл, который вы храните, имеет leaf, не 4. Из‑за экрана с неверной строкой вы .NET SDK не переустанавливаете.
Заглавная буква между кавычками хранится как заглавная. string plant = "Leaf"; заставит строку записи писать Leaf с большой L. Файл, который вы храните, этого не использует. В нём четыре маленькие буквы. Судите экран по буквам, которые реально сидят между кавычками, а не по слову, которое вы только хотели написать.
Пробел — одна из букв
Строка записи может остаться на месте, пока буквы между кавычками меняются. Под первой строкой записи сохраните новый набор букв в то же имя, затем снова напишите имя. Новая строка хранения — plant = "leaf stem";. Она не начинается с string. plant уже существует, поэтому эта строка только заменяет буквы, которые имя держит. Между кавычками на этот раз девять символов: l, e, a, f, пробел, s, t, e, m. Пробел — один из них. Это не разрыв на две строки хранения, и при записи экрана он не удаляется. Следующая строка записи снова Console.WriteLine(plant);. Теперь на экране две строки. Первая — leaf, из букв, которые имя держало в тот момент. Вторая — leaf stem, из букв, которые имя держит после plant = "leaf stem";. На этой второй строке между leaf и stem сидит один пробел. Два слова не на двух отдельных строках.
Это второй файл. Это не файл, который вы храните. Файл, который вы храните, имеет одну строку хранения, буквы leaf и без пробела. Используйте эту вторую форму, когда хотите увидеть пробел, затем верните одну строку хранения и одну строку записи.
using System;
public class Pine
{
public static void Main()
{
string plant = "leaf";
Console.WriteLine(plant);
plant = "leaf stem";
Console.WriteLine(plant);
}
}
Запустите dotnet run. Экран показывает leaf, а следующая строка — leaf stem. Две строки. Без знаков кавычек. Имени plant нет ни на одной строке. Если вторая строка — leafstem без промежутка, между кавычками нет пробела. Если обе строки — leaf, вторая строка хранения отсутствует или всё ещё говорит "leaf". Экран следует порядку строк в файле и следует буквам между кавычками, включая пробел. Не пишите string второй раз для того же имени. string plant = "leaf stem"; под строкой, которая уже создала plant, заставляет build писать ошибку. Удалите второй string и оставьте plant = "leaf stem";.
Между кавычками ничего нет
Пара может быть пустой. string plant = ""; имеет открывающую кавычку и закрывающую кавычку, а между ними нет буквы. Слово вида всё ещё string. Имя всё ещё plant. Знак = всё ещё сохраняет. То, что он сохраняет, — никаких букв. Это разрешено. build не пишет ошибку для пустой пары. Console.WriteLine(plant); всё равно выполняется. Он пишет буквы, которые имя держит, а их нет, поэтому экранная строка без букв. Строка всё равно заканчивается. Программа всё равно завершается. Там, где был бы leaf, вы видите пустую строку. Эта пустая строка и есть запись. Это не ожидание и не сбой build.
Это третий файл. Это не файл, который вы храните. Файл, который вы храните, имеет leaf между кавычками. Держите этот третий файл только пока не увидите пустую строку, затем верните "leaf" между кавычками.
using System;
public class Pine
{
public static void Main()
{
string plant = "";
Console.WriteLine(plant);
}
}
Запустите dotnet run. Пустая пара разрешена, поэтому build не пишет ошибку. Программа пишет строку без букв и завершается. Она не ждёт. Если вы всё ещё видите leaf, между кавычками ещё leaf. После того как увидели пустую строку, снова сделайте строку хранения string plant = "leaf";.
Без кавычек leaf — это имя
Пара делает работу. Уберите обе кавычки, и строка станет string plant = leaf;. Пары нет, поэтому leaf — не буквы. C# читает leaf как имя, а в этом файле имени leaf нет. build пишет ошибку. Он не молчит. Пока build пишет ошибку, экрану доверять нельзя. Исправление — вернуть пару, чтобы строка снова была string plant = "leaf";. Одна кавычка тоже не пара. string plant = "leaf; открывает буквы и не закрывает их до точки с запятой. build пишет ошибку и для этой строки. Верните закрывающую кавычку перед точкой с запятой.
Этот четвёртый файл — отсутствующая пара. Это не файл, который вы храните. Держите его только пока build не напишет ошибку, затем верните кавычки вокруг leaf.
using System;
public class Pine
{
public static void Main()
{
string plant = leaf;
Console.WriteLine(plant);
}
}
Два куска в кавычках соединяются через plus
Строка хранения может соединить два куска в кавычках знаком +. Строка string plant = "leaf" + "stem"; имеет две пары. Первая пара держит leaf. Вторая пара держит stem. Знак + соединяет эти буквы в одно значение: leafstem, без пробела, потому что ни в одной паре пробела не было. Строка записи всё ещё Console.WriteLine(plant);. Экран показывает leafstem на одной строке. Это не две строки записи. Это одно хранение, которое собирает один набор букв из двух кусков в кавычках.
Это пятый файл. Это не файл, который вы храните. Файл, который вы храните, имеет одну пару и буквы leaf. Используйте эту пятую форму, когда хотите увидеть соединение, затем верните одну пару.
using System;
public class Pine
{
public static void Main()
{
string plant = "leaf" + "stem";
Console.WriteLine(plant);
}
}
Экран — это буквы между кавычками
Теперь вы можете хранить буквы в имени string и писать эти буквы, не ставя кавычки на строке записи. string plant = "leaf"; хранит leaf. Console.WriteLine(plant); пишет leaf и заканчивает строку. Позже plant = "leaf stem"; хранит пробел как одну из букв. Пустые кавычки хранят ноль букв и пишут пустую строку. Без кавычек leaf читается как имя, и build пишет ошибку. "leaf" + "stem" соединяется в leafstem. Следующая страница остаётся с буквами и смотрит на методы, которые работают с именем string, например спрашивают, сколько букв оно держит.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху