自定义Stylecop规则,以确保双转换使用格式说明符

本文关键字:转换 格式 说明符 确保 Stylecop 规则 自定义 | 更新日期: 2023-09-27 18:16:43

如何编写自定义样式规则以确保双转换使用格式说明符?例如double.Parsedouble.TryParse

double val;
string str = "1.54";
double.TryParse(str, NumberStyles.AllowDecimalPoint, NumberFormatInfo.InvariantInfo, out val);

自定义Stylecop规则,以确保双转换使用格式说明符

这听起来像是FxCop规则,而不是StyleCop。核心区别在于FxCop使用编译后的程序集,并且拥有关于类型的所有信息,但是不知道源代码。StyleCop与解析过的c#代码一起工作(甚至没有编译过),但知道源代码的一切(例如,可以监视你的缩进)。

这就是为什么StyleCop更适合回答"如何编写"的问题,而FxCop更适合回答"编写什么"的问题。

关于你的问题,在StyleCop中你可以找到源文件中的所有表达式。然后只过滤掉方法调用表达式。然后过滤名为"TryParse"的方法调用。然后,您将检查调用目标是"double"还是"double",并可以检查调用参数。

我的建议是——不要那样做。正如您所理解的,在很多情况下,StyleCop规则都会失败。例如,一个人可以创建一个别名(using D = System.Double;),指向double,你将无法捕捉到这个