5.05. Знаки препинания
Знаки препинания
Два важных вопроса, которые мучают начинающих программистов:
- Когда использовать кавычки двойные (
"), одинарные ('), а когда апострофы (’)? - Когда использовать точки (
.), запятые (,) и точку с запятой (;)?
Строки — в двойных кавычках:
string name = "John";
Символы (char) — в одинарных:
char letter = 'A';
Многострочные строки (verbatim strings) начинаются с @"":
string path = @"C:\Program Files\MyApp";
Апострофы (’) — не поддерживаются в синтаксисе C#.
Точка (.) : аналогично Java — для доступа к свойствам и методам:
Console.WriteLine("Hello");
Запятая (,) : разделяет параметры и элементы массивов:
var numbers = new int[] { 1, 2, 3 };
Точка с запятой (;) : обязательна после каждой инструкции:
int x = 5;
Console.WriteLine(x);
C# строго требует точку с запятой после каждой законченной команды.
Нижние подчеркивания в C#, как и везде, могут быть как частью стиля, так и частью синтаксиса.
_name - очень распространённое соглашение для приватных полей. Часто можно встретить именно такое:
private string _logger;
Это не синтаксис, но общепринято. Некоторые предпочитают camelCase, без _, но _ популярнее.
В C# нет никаких name mangling, магических методов через __.
_ можно использовать как discard - для отбрасывания значения:
var (name, _, age) = GetData(); // игнорируем второе поле
_ в числах используется как разделитель:
int million = 1_000_000;
Символы «|» и «||» в JavaScript, C#, Java, C++ и Kotlin использутся в общем порядке:
| — это побитовое ИЛИ (bitwise OR).
К примеру, метод(значениеА | значениеБ);
В условиях это логическое ИЛИ, но без сокращённого вычисления.
if (методА() | методБ()) - вызовет и методА, и методБ, даже если методА - true.
bool result = a() | b(); // оба вызовутся
|| - логическое ИЛИ (с сокращённым вычислением), можно назвать исключающим.
допустим return a || b - если a true, то b не вернется/не вычислится.
bool result = a() || b(); // если a() == true, b() не вызывается
Директива #region и #endregion — это возможность в C# для логической группировки кода, которую поддерживают IDE (например, Visual Studio), чтобы можно было сворачивать/разворачивать блоки кода.
#region Вспомогательные методы
void Helper1() { }
void Helper2() { }
#endregion
Однако это не часть языка C#, а расширение, поддерживаемое редакторами. Другие языки, как правило, не имеют встроенной поддержки #region, но у многих современные IDE и редакторы (например, VS Code, IntelliJ, GoLand) позволяют сворачивать произвольные блоки кода по другим признакам.