Use this skill when writing, reviewing, debugging, or modernizing C# code in .NET projects. Trigger for .cs/.csproj files, C# language-version questions, nullable reference types, records, pattern matching, async/cancellation, or version-appropriate syntax from C# 10+.
Use this skill when writing, reviewing, debugging, or modernizing C# code in .NET projects. Trigger for .cs/.csproj files, C# language-version questions, nullable reference types, records, pattern matching, async/cancellation, or version-appropriate syntax from C# 10+.
compatibility
Supports C# 10 through 14. Adaptive to .NET 6.0, 7.0, 8.0, 9.0, and 10.0 environments.
metadata
{"version":"1.4.0","category":"Core"}
Modern C# (10+) Expert Skill
Trigger On
The user asks to write, debug, refactor, or review C# code.
The project directory contains *.cs, *.csproj, or single-file C# scripts.
The target framework is .NET 6.0 (LTS) and above.
Code modernization is needed (e.g., converting legacy nested namespaces to File-scoped namespaces).
Workflow
Perceive (Version Awareness):
Check .csproj to identify TargetFramework and determine the syntax upper limit:
net6.0: C# 10 (File-scoped namespaces, Global usings).
net10.0: C# 14 (Extension members, field keyword).
Reason (Planning Phase):
Evaluate the modernization level of the current code to determine the refactoring strategy.
In lower version environments (like .NET 6), avoid using higher version syntax (like Primary Constructors), but prioritize using File-scoped namespaces.
In higher version environments, actively adopt new features to reduce boilerplate code.
Act (Execution Phase):
Write high-quality code, prioritizing "syntactic sugar" to improve readability.
Implement strong typing and immutable data structures (record, record struct).
Utilize Interpolated string handlers and Span to optimize performance-sensitive paths.
Validate (Standard Validation):
Validate the safety of NRT (Nullable Reference Types).
Check if asynchronous operations correctly handle cancellation tokens (CancellationToken).
Ensure naming conventions comply with official .NET recommendations.
Scripting: Support dotnet run file.cs for direct execution.
Coding Standards
Clean Structure: Prioritize using File-scoped namespaces.
Immutability: Use record for Data Transfer Objects (DTO).
Performance: Use Span<T> and ReadOnlySpan<char> in critical paths.
Async Safety: Always pass CancellationToken, avoid .Result or .Wait().
Deliver
Version-Optimized Code: Provide the most appropriate modernized syntax code based on the target C# version.
Modernization Insights: Provide specific refactoring suggestions for upgrading from older C# syntax to new features (e.g., from nested namespaces to File-scoped namespaces).
Syntax Explanations: Clearly explain the design intent and syntax advantages behind the new C# features used.
Validate
Ensure the provided code complies with the syntax specifications of the target C# version.
Validate whether the code follows C# strong typing and Null safety (NRT) principles.
Confirm the code has good readability and best practices at the pure C# language level (e.g., proper use of Span<T>, record, etc.).