Rob*_*ean 19 c# extension-methods code-analysis fxcop
使用带有C#可选参数的代码分析(或fxCop)时,您可以收到CA1026的警告.对此的简短原因1不是使用默认值来提供所有参数.
下面的声明正确地生成了此警告
public Color GetColor(bool red, bool blue = true, bool green = true)
Run Code Online (Sandbox Code Playgroud)
但是,有一种情况是您无法使用默认值提供所有参数,这就是扩展方法.因此,下面的声明会因为第一个参数而生成警告:
public static bool ValidateRules(this string s, Rules rules = Rules.Default)
Run Code Online (Sandbox Code Playgroud)
编译器不允许您在this参数上指定默认值,因此只有两个解决方案是:
Jon*_*eet 34
这不是警告你不具有默认的所有参数-这是警告你使用可选参数在所有.
我个人会禁用这个特别的警告.小心使用时,我认为可选参数很好.你应该仔细思考他们认为特别是在默认参数值的版本控制方面和在不支持这些语言(包括V4之前,C#)方面,但在许多环境中的缺点真的不是一个问题-你可以结束使用比在整个地方指定重载更简单的代码.