我正在尝试简化我的一些代码(现在我正处于圈复杂性和类耦合部分),但我在类耦合度量方面遇到了问题。。。
这就是场景:
public class firstTestClass
{
public string Name { get; set; }
}
public class secondTestClass
{
public List<firstTestClass> _list = new List<firstTestClass>();
public void testMethod()
{
string agg = string.Empty;
//code goes here
}
}
当我添加这个部分时,我在testMethod()上有一个4的类耦合
foreach (firstTestClass cls in _list)
{
agg += cls.Name;
}
但当我切换到simple-for时,类耦合减少到2
for (int i = 0; i < _list.Count; i++)
{
firstTestClass cls = _list[i];
agg += cls.Name;
}
我认为foreach在背后,但我无法合理解释为什么/如何发生这两个额外的耦合。。。
PS。我在这个例子中使用了Visual Studio 2013 Pro更新4。。。
我认为它可以更简化(可能降低复杂性),而不是
foreach (firstTestClass cls in _list)
{
agg += cls.Name;
}
使用
agg = (from l in _list select l.Name).ToList().Join("");
(我手头没有编译器,所以代码没有经过测试)
类耦合的原因可能是foreach循环内部使用了额外的类(而在for循环中没有使用)。我不知道这个解决方案,但清晰的代码比代码复杂性更重要。