Csharp

Use when: write or review modern, idiomatic C# with async, nullable reference types, and clean structure.

kimtth 04f3930 1.1 KB Updated

File contents

Goal: modern C# that is null-safe, async-correct, and testable.

Use for:

  • new classes, services, or APIs in C#/.NET
  • reviewing async usage, nullability, and structure
  • modernizing legacy patterns to current language features

Workflow:

  1. Enable nullable reference types and honor the warnings.
  2. Use async/await end to end; never block on async code.
  3. Model data with records and pattern matching.
  4. Prefer immutable types and expression-bodied members.
  5. Inject dependencies; program to interfaces, not concretions.
  6. Verify with the test runner, analyzers, and dotnet format.

Idioms:

  • records for value-like data
  • LINQ for transformations over manual loops
  • pattern matching and switch expressions
  • using declarations for IDisposable
  • CancellationToken threaded through async APIs

Rules:

  • never call .Result/.Wait() on a Task; await it
  • treat nullable warnings as errors to fix
  • pass CancellationToken to cancellable operations
  • keep methods small; depend on abstractions for testability

kimtth/agent-skill-100-lines-or-less/tree/main/skills/csharp commit 04f3930757

Frequently asked questions

npx skillmds@latest add kimtth/csharp