Template
19 lines
726 B
Markdown
19 lines
726 B
Markdown
---
|
|
description: "Use when writing or modifying C# source code. Covers non-obvious defaults not caught by analyzers."
|
|
applyTo: "**/*.cs"
|
|
---
|
|
# C# Conventions
|
|
|
|
Code style is enforced by `.editorconfig`, `.globalconfig`, and StyleCop analyzers — do not restate their rules.
|
|
|
|
## Non-Obvious Defaults
|
|
|
|
- XML doc comments required on public API in `src/` (suppressed in `tests/` and `samples/`).
|
|
- Avoid `null!` (null-forgiving operator) — fix the nullability flow instead of suppressing the warning.
|
|
|
|
## Patterns
|
|
|
|
- Prefer **records** for DTOs, value objects, and other immutable data carriers.
|
|
- Use `LoggerMessage`-generated `partial` methods on a `partial class` — never log inline (e.g., `logger.LogInformation(…)`).
|
|
|