C#方法中params与CancellationToken的参数位置优先级排序问询
结论
你给出的参数排序方式是完全正确的,是这类场景下的标准处理方案。
原因说明
- 两个规则的优先级有本质区别:
params必须为方法最后一个参数是C#的强制语法规则,违反会触发CS0231编译错误,代码无法正常编译,优先级最高。- CA1068是.NET静态代码分析的最佳实践建议,属于非强制的警告规则,该规则本身就将「方法包含
params参数」作为豁免场景,这种情况下将CancellationToken放在params之前不会被判定为违规。
- 你给出的示例写法既满足了语法强制要求,也最大程度贴合了CA1068的设计初衷:将
CancellationToken放在所有固定业务参数之后、可变长度的params参数之前,调用时的辨识度也符合通用开发习惯。
内容的提问来源于stack exchange,提问作者yi.han
相关产品推荐
相关产品推荐

