mcpField
N
neo-csharp

neo-csharp

github.com/benknightdark开发735 次安装4 天前更新
代码仓库

关于 neo-csharp

neo-csharp 是用于编写、调试、重构和审查现代 C# 代码的技能。它会依据目标框架选择适用语法,并提供现代化建议与检查。

主要功能

  1. 01按目标框架选择语法
  2. 02提供现代化与重构建议
  3. 03采用强类型和不可变数据模式
  4. 04检查可空性与异步安全
  5. 05说明 C# 规范和语法

适用场景

  1. 01现代化旧版 C# 语法
  2. 02按目标框架审查代码
  3. 03检查可空性与取消令牌处理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/benknightdark/neo-skills --skill neo-csharp

安装后在 Claude Code 中输入/neo-csharp确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
anti-patterns.md
coding-style.md
patterns.md

详细介绍

现代 C#(10+)专家技能

触发条件

  • 用户要求编写、调试、重构或审查 C# 代码。
  • 项目目录包含 *.cs、*.csproj 或单文件 C# 脚本。
  • 目标框架为 .NET 6.0(LTS)及更高版本。
  • 需要进行代码现代化改造(例如,将旧式嵌套命名空间转换为文件范围命名空间)。

工作流

  1. 感知(版本识别):
    • 检查 .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 关键字)。
  2. 推理(规划阶段):
    • 评估当前代码的现代化程度,以确定重构策略。
    • 在较低版本环境(如 .NET 6)中,避免使用更高版本的语法(如主构造函数),但优先使用文件范围命名空间。
    • 在较高版本环境中,积极采用新功能以减少样板代码。
  3. 执行(实施阶段):
    • 编写高质量代码,优先使用“语法糖”来提升可读性。
    • 实现强类型和不可变数据结构(record、record struct)。
    • 使用 插值字符串处理程序和 Span 优化对性能敏感的代码路径。
  4. 验证(标准验证):
    • 验证 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 等)。

文档

官方参考资料
内部参考资料

评论

支持 Markdown