Neo csharp
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+.From its SKILL.md
npx -y skills add Benknightdark/neo-skills --skill neo-csharpAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `dotnet run file.cs`.
SKILL.md
5.3 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
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
.csprojto identifyTargetFrameworkand determine the syntax upper limit:net6.0: C# 10 (File-scoped namespaces, Global usings).net7.0: C# 11 (Raw string literals, Required members).net8.0: C# 12 (Primary Constructors, Collection Expressions).net9.0: C# 13 (paramscollections,Lockobject).net10.0: C# 14 (Extension members,fieldkeyword).
- Check
- 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<T> 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.
Feature Roadmap (C# 10 - 14)
C# 10 & 11 (Foundation)
- File-scoped Namespaces: Reduce indentation levels.
- Global Using Directives: Centralize common namespaces management.
- Raw String Literals:
"""..."""easily handle multi-line and special characters. - Required Members: Ensure required properties during object initialization.
- List Patterns:
if (list is [1, 2, ..])powerful collection matching.
C# 12 & 13 (Productivity)
- Primary Constructors: Simplify class-level dependency injection.
- Collection Expressions: Uniformly use
[1, 2, 3]to initialize collections. paramsCollections: Method parameters support various collection types.- Implicit Span Conversion: Handle memory-safe code more naturally.
C# 14+ (Version-Specific Features)
- Extension Members: Extension properties, operators, and static members.
fieldKeyword: Directly access backing fields in property logic.- Null-conditional Assignment:
target?.Property = value;. - Scripting: Support
dotnet run file.csfor direct execution.
Coding Standards
- Clean Structure: Prioritize using File-scoped namespaces.
- Immutability: Use
recordfor Data Transfer Objects (DTO). - Performance: Use
Span<T>andReadOnlySpan<char>in critical paths. - Async Safety: Always pass
CancellationToken, avoid.Resultor.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.).
Documentation
Official References
- What's new in C# 14 (Extension Members, field keyword)
- What's new in C# 13 (params collections, Lock object)
- What's new in C# 12 (Primary Constructors, Collection Expressions)
- What's new in C# 11 (Raw String Literals, Required Members)
- What's new in C# 10 (File-scoped Namespaces, Global Usings)
- Nullable Reference Types
Internal References
What ships with it: 3 files
11.0 KB alongside SKILL.md
reference/
- anti-patterns.md3.6 KB
- coding-style.md3.6 KB
- patterns.md3.9 KB