You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- При генерации кода используй современные конструкции языка, совместимые с целевыми платформами проекта
24
+
- Стремись минимизировать количество фигурных скобок за счёт expression‑bodied членов и switch‑выражений
25
+
- Не убирай фигурные скобки в многострочных конструкциях ради читаемости
26
+
- Всегда старайся минимизировать размер кода, если не запрошено иное
27
+
28
+
Разрешённые современные приёмы (когда поддерживается целевой платформой):
29
+
- file‑scoped namespace
30
+
- expression‑bodied члены
31
+
- switch‑выражения и pattern matching
32
+
- target‑typed `new`
33
+
- collection expressions и инициализаторы коллекций
34
+
-`using var` и `await using`
35
+
- операторы `??`, `??=`, `is not`, `with`
36
+
- упрощение nullable-присвоения `target?.Property = 15;` вместо `if(target is not null) target.Property = 15;`
37
+
38
+
## Именование
39
+
- Локальные переменные: `snake_case`
40
+
- Параметры методов: `PascalCase`
41
+
- Поля экземпляров: `_PascalCase`
42
+
- Статические поля: `__PascalCase`
43
+
- Константы: `PascalCase`
44
+
- Публичные типы и члены API: `PascalCase`
45
+
- Предпочитай английский язык при именовании переменных, методов, классов и прочих сущностей
46
+
47
+
## Инициализация и объявления
48
+
- При инициализации массивов, списков и словарей используй выражения инициализации массивов/коллекций
49
+
- При объявлении переменных предпочитай использовать ключевое слово `var` (кроме случаев, когда явный тип заметно повышает понятность)
50
+
51
+
## Форматирование
52
+
- Короткие системные комментарии пиши компактно в одну строку
53
+
- Удаляй неиспользуемые `using`, сортируй и группируй директивы `using`
54
+
- Разделяй логические блоки пустыми строками по мере необходимости, избегай лишних переносов
55
+
56
+
## Практики .NET
57
+
- Включай `#nullable enable` там, где это поддерживается
58
+
- Используй guard‑выражения, например `ArgumentNullException.ThrowIfNull(x)`
59
+
- Предпочитай Try‑паттерны для контроля потока вместо исключений
60
+
- При генерации метода добавляй в его начале блок проверки входных параметров. Отделяй этот блок пустой строкой от остального тела метода
61
+
- При генерации публичных свойств у моделей-представления MVVM (классов, реализующих INotifyPropertyChanged) используй следующий формат (в одну строку):
0 commit comments