- Всегда отвечай, используя русский язык
- Всегда пиши комментарии в коде на русском языке
- Короткие пояснительные комментарии располагай в конце той же строки, что и код // кратко по делу
- Старайся избегать тривиальных комментариев
- Документируй классы, структуры, делегаты, перечисления и их члены только XML‑комментариями
- Одинарное предложение пиши в одной строке внутри тега и без точки в конце
- Каждый тег XML‑комментария располагай на отдельной строке
- Порядок тегов:
<summary>→<param>→<returns>→<exception>→<remarks>→<example> - Для сложных публичных метдов генерируй блок с простым примером использования кода внутри тега
<example>
Примеры:
<summary>Краткое описание сущности</summary><param name="Value">Описание параметра</param><returns>Описание возвращаемого значения</returns>
- При генерации кода используй современные конструкции языка, совместимые с целевыми платформами проекта
- Стремись минимизировать количество фигурных скобок за счёт expression‑bodied членов и switch‑выражений
- Не убирай фигурные скобки в многострочных конструкциях ради читаемости
- Всегда старайся минимизировать размер кода, если не запрошено иное
Разрешённые современные приёмы (когда поддерживается целевой платформой):
- file‑scoped namespace
- expression‑bodied члены
- switch‑выражения и pattern matching
- target‑typed
new - collection expressions и инициализаторы коллекций
using varиawait using- операторы
??,??=,is not,with - упрощение nullable-присвоения
target?.Property = 15;вместоif(target is not null) target.Property = 15;
- Локальные переменные:
snake_case - Параметры методов:
PascalCase - Поля экземпляров:
_PascalCase - Статические поля:
__PascalCase - Константы:
PascalCase - Публичные типы и члены API:
PascalCase - Предпочитай английский язык при именовании переменных, методов, классов и прочих сущностей
- При инициализации массивов, списков и словарей используй выражения инициализации массивов/коллекций
- При объявлении переменных предпочитай использовать ключевое слово
var(кроме случаев, когда явный тип заметно повышает понятность)
- Короткие системные комментарии пиши компактно в одну строку
- Удаляй неиспользуемые
using, сортируй и группируй директивыusing - Разделяй логические блоки пустыми строками по мере необходимости, избегай лишних переносов
- Включай
#nullable enableтам, где это поддерживается - Используй guard‑выражения, например
ArgumentNullException.ThrowIfNull(x) - Предпочитай Try‑паттерны для контроля потока вместо исключений
- При генерации метода добавляй в его начале блок проверки входных параметров. Отделяй этот блок пустой строкой от остального тела метода
- При генерации публичных свойств у моделей-представления MVVM (классов, реализующих INotifyPropertyChanged) используй следующий формат (в одну строку):
/// <summary>Описание свойства</summary>
public string PropertyName { get; set => Set(ref field, value); }- Для простых лаконичных методов используй expression‑bodied синтаксис, записанный в одну строку.
- В рабочем пространстве используются целевые платформы:
.NET Standard 2.0и.NET 10 - Применяй современные возможности языка и платформы только если они доступны для соответствующей целевой платформы проекта