如何编写自定义样式规则以确保双重转换使用格式说明符。例如double.Parse
或double.TryParse
double val;
string str = "1.54";
double.TryParse(str, NumberStyles.AllowDecimalPoint, NumberFormatInfo.InvariantInfo, out val);
答案 0 :(得分:3)
这听起来像是一个FxCop规则,而不是StyleCop。核心区别在于FxCop与编译汇编一起使用,并且包含有关类型的所有信息,但不了解源代码。 StyleCop使用已解析的C#代码(甚至不编译),但是知道有关源代码的所有内容(例如,可以查看缩进)。
这就是为什么StyleCop更适合回答“如何写”的问题,而FxCop更适用于“写的是什么”。
关于您的问题,在StyleCop中,您可以找到源文件中的所有表达式。然后仅过滤掉方法调用表达式。然后筛选名为“TryParse”的方法调用。然后你会检查调用目标是“double”还是“Double”,并且可以检查调用参数。
根据我的建议是 - 不要那样做。您可以理解,当您的StyleCop规则失败时,可能会有大量示例。例如,可以创建一个别名(using D = System.Double;
),指向double,你将无法捕获它。