Kel*_*ine 6 c# linq code-metrics
我有三个参数的方法:List<Class1> source,List<Class2) results,和DateTime endDate.我可以看出为什么类耦合是四.但是,当我添加此语句时,它会跳到十:
var warnings = from s in source
join r in results on s.Field1 equals r.Field1 into joined
from j in joined.DefaultIfEmpty( )
where j == null
select string.Format( "{0}{1}", A_CONSTANT, s.Field2 );
Run Code Online (Sandbox Code Playgroud)
我的问题:
另外六个类可能是:
IEnumerable<string> - 您的查询结果IEnumerable<Class1> - 左边的集合IEnumerable<Class2> - 正确的收藏Func<Class1, int> - 连接表达式的左侧部分Func<Class2, int> - 连接表达式的右侧部分Func<Class1, Class2, string> - 投影Enumerable由于查询被转换为静态扩展方法调用,因此它也可以计算类.
在任何一种情况下,代码分析似乎都不会忽略Linq使用的瞬态类(无论它是否应该是有争议的).我的建议是要么忽略它(可能手动计算耦合并注意差异)或找到更好的分析工具.
另一个问题是:它是否会增加你的整体耦合?我怀疑在您的应用程序中使用了其中几个类,因此它可能不会对您的整体耦合产生显着影响.