用途:该技能用于在 dotnet/winforms 仓库中生成新的 C# 或 VB.NET 源文件时提供编码规范;现代化或重构既有文件应改用 code-modernization 技能。
主要能力:规定默认目标框架为 net10.0,部分文件面向 .NET Framework 或多目标,生成前需查看项目文件;不得编辑 eng/common/ 下文件;遵循 .editorconfig。语言版本使用 C# 14 特性,如扩展成员、属性 field 关键字、空条件赋值、nameof 无绑定泛型、无类型 lambda 修饰符、分部构造函数/事件、Span<T> 一等转换。
类型与 var 策略:基本类型禁用 var,必须显式写出 int、string、bool 等;类型在同行可见或可推断时用 var,如强制转换、as 转换、显式泛型参数、out var、方法名已暗示返回类型;复杂泛型或元组解构可用 var;类型不明显时显式声明;类型在左侧可见时优先目标类型 new(),但类型不可见时不用;集合用集合表达式,但需要可构造数组类型时例外。
命名与格式:私有/内部实例字段 _camelCase,私有静态 s_camelCase,ThreadStatic t_camelCase,常量 PascalCase,其余成员 PascalCase;显式声明可访问性,取最窄作用域,无实例状态标 static;Allman 大括号,表达式体成员超 60 字符换行,三元分支分行,优先 switch 表达式,点链超过 2 个成员换行,多字面量或含义不清时用命名参数。
错误处理与性能:用 throw 辅助方法而非手写检查,异常与断言中用 nameof();单字符重载、ReadOnlySpan<char>、Any()、TryGetValue、string.IsNullOrEmpty、Array.Empty<T>(),优先 using 声明。
XML 文档:所有类、结构、记录、接口、枚举无论访问修饰符(含私有嵌套类型)都需 XML 文档头,summary 必填,remarks 用于非平凡类型,重写成员用 inheritdoc,局部函数不用 XML 注释,文档用 Unicode 字符,XML 缩进每层 1 空格。
文件结构:文件作用域命名空间,UTF-8 with BOM、CRLF、4 空格缩进、无行尾空白、文件末尾换行。WinForms 特定:事件用可空 EventHandler,OnClick 中 Click?.Invoke,无参事件用 EventArgs.Empty,设计器控件标可空,Dispose 用 is not null,平台方法加 SupportedOSPlatform("windows")。
限制:资料未提供安装命令、收费、平台支持范围或效果数据;具体项目文件与 .editorconfig 内容需自行查看。