关于 neo-csharp
neo-csharp 是用于编写、调试、重构和审查现代 C# 代码的技能。它会依据目标框架选择适用语法,并提供现代化建议与检查。
主要功能
- 01按目标框架选择语法
- 02提供现代化与重构建议
- 03采用强类型和不可变数据模式
- 04检查可空性与异步安全
- 05说明 C# 规范和语法
适用场景
- 01现代化旧版 C# 语法
- 02按目标框架审查代码
- 03检查可空性与取消令牌处理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ benknightdark/ neo-skills --skill neo-csharp安装后在 Claude Code 中输入/neo-csharp确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
reference/anti-patterns.mdcoding-style.mdpatterns.md详细介绍
现代 C#(10+)专家技能
触发条件
- 用户要求编写、调试、重构或审查 C# 代码。
- 项目目录包含
*.cs、*.csproj或单文件 C# 脚本。 - 目标框架为 .NET 6.0(LTS)及更高版本。
- 需要进行代码现代化改造(例如,将旧式嵌套命名空间转换为文件范围命名空间)。
工作流
- 感知(版本识别):
- 检查
.csproj,识别TargetFramework并确定语法上限:net6.0:C# 10(文件范围命名空间、全局 using)。net7.0:C# 11(原始字符串字面量、必需成员)。net8.0:C# 12(主构造函数、集合表达式)。net9.0:C# 13(params集合、Lock对象)。net10.0:C# 14(扩展成员、field关键字)。
- 检查
- 推理(规划阶段):
- 评估当前代码的现代化程度,以确定重构策略。
- 在较低版本环境(如 .NET 6)中,避免使用更高版本的语法(如主构造函数),但优先使用文件范围命名空间。
- 在较高版本环境中,积极采用新功能以减少样板代码。
- 执行(实施阶段):
- 编写高质量代码,优先使用“语法糖”来提升可读性。
- 实现强类型和不可变数据结构(
record、record struct)。 - 使用 插值字符串处理程序和 Span 优化对性能敏感的代码路径。
- 验证(标准验证):
- 验证 NRT(可空引用类型)的安全性。
- 检查异步操作是否正确处理取消令牌(
CancellationToken)。 - 确保命名约定符合官方 .NET 建议。
功能路线图(C# 10 - 14)
C# 10 和 11(基础)
- 文件范围命名空间: 减少缩进层级。
- 全局 using 指令: 集中管理常用命名空间。
- 原始字符串字面量: 使用
"""..."""轻松处理多行文本和特殊字符。 - 必需成员: 确保对象初始化时设置必需属性。
- 列表模式:
if (list is [1, 2, ..])可进行强大的集合匹配。
C# 12 和 13(效率提升)
- 主构造函数: 简化类级别的依赖注入。
- 集合表达式: 统一使用
[1, 2, 3]初始化集合。 params集合: 方法参数支持多种集合类型。- 隐式 Span 转换: 更自然地处理内存安全代码。
C# 14+(特定版本功能)
- 扩展成员: 扩展属性、运算符和静态成员。
field关键字: 在属性逻辑中直接访问后备字段。- 空条件赋值:
target?.Property = value;。 - 脚本: 支持通过
dotnet run file.cs直接执行。
编码标准
- 结构清晰: 优先使用文件范围命名空间。
- 不可变性: 使用
record表示数据传输对象(DTO)。 - 性能: 在关键代码路径中使用
Span<T>和ReadOnlySpan<char>。 - 异步安全: 始终传递
CancellationToken,避免使用.Result或.Wait()。
交付内容
- 版本优化代码: 根据目标 C# 版本,提供最合适的现代化语法代码。
- 现代化改造建议: 提供从旧版 C# 语法升级到新功能的具体重构建议(例如,从嵌套命名空间改为文件范围命名空间)。
- 语法说明: 清楚解释所用新 C# 功能背后的设计意图和语法优势。
验证
- 确保提供的代码符合目标 C# 版本的语法规范。
- 验证代码是否遵循 C# 强类型和空值安全(NRT)原则。
- 确认代码在纯 C# 语言层面具备良好的可读性并遵循最佳实践(例如,正确使用
Span<T>、record等)。
文档
官方参考资料
- C# 14 新功能(扩展成员、field 关键字)
- C# 13 新功能(params 集合、Lock 对象)
- C# 12 新功能(主构造函数、集合表达式)
- C# 11 新功能(原始字符串字面量、必需成员)
- C# 10 新功能(文件范围命名空间、全局 using)
- 可空引用类型
内部参考资料
评论
支持 Markdown