Комментарии
Заметка в программе Pine — для человека, который читает файл. Экран остаётся pine. Console.WriteLine("pine"); всё ещё та строка, которая пишет это слово. Эта страница добавляет заметку в двух формах, показывает, что pine по‑прежнему единственная строка, и затем показывает единственное место, которое убирает pine. Вы снова не устанавливаете SDK. Вы снова не перечитываете, какая строка — Main. Сохраните открытый класс с именем Pine и оставьте команду записи активной в файле, который храните.
Заметка — не команда
Команда — это строка, которую C# выполняет. Console.WriteLine("pine"); — команда. Она пишет pine и заканчивает строку. Заметка — это текст, который вы оставляете в файле, чтобы вы или следующий читатель что‑то помнили. Компилятор и runtime пропускают заметку. Пропуск значит: заметка не выполняется и на экран не пишется. Буквы заметки остаются в файле после запуска. Вы можете открыть файл и прочитать их. На экране их не найти. На экране по‑прежнему одна строка, и эта строка — pine, пока сама команда записи не стала заметкой.
Есть две формы. Строчная заметка начинается с двух косых черт, //. C# пропускает от этих двух черт до конца той же строки. Следующая строка снова обычная. Блочная заметка начинается с /* и заканчивается на первом */. C# пропускает всё между этими двумя знаками, включая переносы строк. Блочная заметка может стоять на одной строке или на нескольких. Обе формы — заметки. Ни одна не пишет экран. Черты не печатаются. Звёздочки не печатаются. Слова, которые вы ставите между ними, не печатаются.
Файл, который вы храните
Сохраните эту учебную форму. В ней есть строчная заметка над командой записи, ещё одна строчная заметка на самой строке команды и строчная заметка рядом с Main. Команда записи всё ещё на месте и не стоит за чертой.
using System;
public class Pine
{
// the teaching type is Pine
public static void Main()
{
// a note for the reader
Console.WriteLine("pine"); // the screen is this word
}
}
Читайте сверху и для каждой строки решайте, попадает ли она на экран. Строка using System; готовит короткие имена и экран не пишет. Строка класса по‑прежнему public class Pine. Она называет тип и экран не пишет. Следующая строка — // the teaching type is Pine. Две черты начинают заметку, поэтому эти слова для вас. Экран их не показывает. Черты тоже не показывает. Строка public static void Main() — место, где runtime начинает, и ни одно из этих слов не на экране. Это не изменилось с First Program.
Внутри Main строка // a note for the reader — только заметка. Runtime доходит до неё, пропускает и идёт к следующей. Следующая строка — та, что важна: Console.WriteLine("pine"); // the screen is this word. Читайте эту строку как две части, разделённые чертами. До черт команда — Console.WriteLine("pine");. Эта команда пишет pine и заканчивает строку. После черт слова the screen is this word — заметка. Они сидят на той же строке, что и команда, и всё равно пропускаются. Заметке не обязательно занимать целую строку. Если // стоит после законченной команды, команда выполняется, а остаток строки — нет. Точка с запятой заканчивает команду. Черты после неё начинают заметку. Оставьте точку с запятой на месте. Экран показывает pine. Он не показывает the screen is this word. Второй строки нет.
Запускайте так же, как после установки. В папке проекта введите dotnet run. Экран показывает pine. Одна строка. Без кавычек. Без черт. Без второй строки. Слово pine всё ещё то слово между кавычками. Это не слово, которое вы набрали в команде, и не слово, которое вы набрали в заметке. Заметки не ломают сборку и сами себя не печатают.
Блочная заметка
Блочная заметка — другая форма. Её используют, когда заметка длиннее одной строки или когда конец заметки — знак, который вы выбираете сами, а не конец строки. Открывающий знак — /*. Закрывающий — */. C# пропускает от открытия до закрытия, и первый */ — конец. Поздний */ не часть этой заметки, потому что заметка уже закончилась. На этой странице одна блочная заметка, поэтому вы увидите одно открытие и одно закрытие.
Замените строчные заметки внутри Main одной блочной и оставьте команду записи на месте. Экран не меняется. Это второй файл. Вы смотрите, как выглядит заметка. Файл, который вы хранили, использовал строчные заметки. Этот использует блочную. Оба пишут pine.
using System;
public class Pine
{
public static void Main()
{
/* a note
across two lines */
Console.WriteLine("pine");
}
}
Блочная заметка начинается на строке, которая открывается с /*. Слова a note внутри неё. Следующая строка, across two lines, тоже внутри, потому что закрывающий */ ещё не появился. */ в конце этой второй строки заканчивает заметку. Затем C# выполняет Console.WriteLine("pine");, потому что эта команда вне заметки, ниже закрывающего знака. Экран показывает pine. Слова a note и across two lines на экране нет. Звёздочек и черт на экране нет. Если поднять */ так, чтобы он стоял на первой строке сразу после a note, вторая строка уже не внутри заметки. Та вторая строка должна была бы быть настоящей строкой C#, а across two lines — не команда. Сборка напишет ошибку вместо тишины. На этой странице */ остаётся в конце второй строки, поэтому вся заметка пропускается и сборка остаётся тихой.
Не пытайтесь вложить одну блочную заметку в другую. Первый */ заканчивает заметку, даже если вы хотели, чтобы этот */ закрыл внутреннюю. После первого закрывающего знака C# снова читает команды. Эта страница не вкладывает заметки. Одно открытие, одно закрытие, затем команда записи.
Ошибка, которая убирает pine
В файлах выше заметка и команда записи — разные строки или разные части одной строки. Ошибка — поставить две черты перед командой записи, чтобы сама команда стала заметкой. Сохраните эту третью форму лишь достаточно долго, чтобы увидеть пустой экран, затем верните команду записи. Это не файл, который вы храните.
using System;
public class Pine
{
public static void Main()
{
// Console.WriteLine("pine");
}
}
dotnet run тогда не пишет ничего полезного на экран для этой учебной проверки. Нет pine. Нет пустого слова в кавычках. Нет второй строки. Экран пуст, потому что команда, которая писала pine, стоит за //. Буквы Console.WriteLine("pine") всё ещё в файле, и вы можете их прочитать, но теперь это заметка. Кавычки их не спасают. Кавычки отмечают слово внутри команды. Они не превращают заметку обратно в команду. Решают две черты спереди, и они решают, что остаток строки — для читателя.
Верните файл к тому, который храните. Строка записи должна быть Console.WriteLine("pine");, а заметка, если нужна, — после точки с запятой. Тогда dotnet run снова пишет pine. Если экран пуст, ищите // перед Console. Вся проверка в этом. Вы не переустанавливаете .NET SDK из‑за пустого экрана, вызванного заметкой. Оставляйте привычки Java с System.out.println вне этой страницы, когда практикуете строку записи C#. Оставляйте выдумывание маршрутов ASP.NET вне этой страницы.
Экран по‑прежнему pine
Теперь вы можете поставить заметку в файл Pine, не меняя экран. Строчная заметка начинается с //. Блочная начинается с /* и заканчивается на первом */. Экран файла, который вы храните, — pine, написанный Console.WriteLine("pine");. Если // стоит перед этой командой, на экране нет строки. Заметка может содержать любые слова, включая Pine, Main и pine. Эти слова всё равно не на экране. Следующая страница меняет, как пишутся строки вывода, чтобы экран мог показать больше одной короткой привычки. Заметки на этой странице остаются заметками.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху