Перейти к основному содержимому

Синтаксис и пунктуация в 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 как замену архитектуре: регионов много, смысла мало.

Смежные статьи

Синтаксис и пунктуация в C#

Разработчику Архитектору

Названия знаков по-английски и по-русски: Знаки препинания и символы в IT.

Знаки препинания

Два важных вопроса, которые мучают начинающих программистов:

  1. Когда использовать кавычки двойные ("), одинарные ('), а когда апострофы ()?
  2. Когда использовать точки (.), запятые (,) и точку с запятой (;)?

Строки — в двойных кавычках:

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.