Синтаксис и пунктуация в C#
Базовые знаки препинания
| Символ | Роль |
|---|---|
" | строка (string) |
' | символ (char) |
; | конец инструкции |
, | разделитель аргументов и элементов |
. | доступ к членам (Console.WriteLine) |
Быстрый тест: это текст целиком или один символ?
Практические мини-примеры
char initial = 'A';
string user = "Alice";
Console.WriteLine($"User: {user}, Initial: {initial}");
var numbers = new[] { 10, 20, 30 };
Console.WriteLine(numbers.Length);
Типичные промахи
- Ставят апостроф
’вместо одинарной кавычки'вchar. - Забывают
;в конце инструкции. - Путают
|и||в условиях и получают лишние вызовы методов. - Используют
#regionкак замену архитектуре: регионов много, смысла мало.
Смежные статьи
- Знаки препинания и символы в IT — русские и английские имена символов
- Пространства имён в C#
- Управляющие конструкции и логические операторы
- Преобразование типов и система типизации
Синтаксис и пунктуация в C#
Разработчику АрхитекторуНазвания знаков по-английски и по-русски: Знаки препинания и символы в IT.
Знаки препинания
Два важных вопроса, которые мучают начинающих программистов:
- Когда использовать кавычки двойные (
"), одинарные ('), а когда апострофы (’)? - Когда использовать точки (
.), запятые (,) и точку с запятой (;)?
Строки — в двойных кавычках:
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(); // оба вызовутся
|| — логическое ИЛИ с сокращённым вычислением (short-circuit): если левая часть уже true, правая не вычисляется. Не путать с побитовым XOR (^).
допустим 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
#region / #endregion — директивы препроцессора C#; на скомпилированный код не влияют. IDE используют их для сворачивания блоков. В продакшен-коде регионы применяют умеренно — иначе файл сложнее читать в review.