所以我只是通过抑制它来忽略这个代码分析警告?或者有没有办法真正解决它?
这是一个接近我的用户故事,但我稍微改了一下,以便公司信息不在网站上......
假设我有一个运送到15个国家/地区的公司的网站,他们希望从相应的resources.resx文件中以用户选择的语言显示这些国家/地区的名称。
现在,列表中的“选项”比名称/值或键/值对更复杂。因此,当前代码有一个返回所有选项的方法,因此它可能如下所示:
return new[]
{
new CountryOption(code1, resourceKey1, someOtherValue1),
new CountryOption(code2, resourceKey2, someOtherValue2),
new CountryOption(code3, resourceKey3, someOtherValue3),
... (repeat 12 more times so I have 15 countries)
};
因此,我得到了所有国家的名单(IEnumerable<CountryOption>
)
大多数此类应用程序将从数据库中读取此类信息,但此数据很少更改并将其放入数据库将降低站点的性能。可以把它放到一个平面文件中阅读,但同样,用代码编译会更快。最后,我们确实进行了一些单元测试,以确保每个构建运行的信息都是正确的(数据库中的信息更难处理)。
是否可以减少已知值列表的圈复杂度,从代码外部的某些源读取它? (如果是这样,抑制消息可能是正确的做法。)
答案 0 :(得分:0)
正如其他人指出的那样,集合的创建本身具有1的圈复杂度。但是集合中的对象使用了func<string>
并且提高了复杂性 - 每个项目基本上为2在集合中!谢谢你的帮助。