类耦合-使用for vs foreach(Visual Studio)



我正在尝试简化我的一些代码(现在我正处于圈复杂性和类耦合部分),但我在类耦合度量方面遇到了问题。。。

这就是场景:

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循环中没有使用)。我不知道这个解决方案,但清晰的代码比代码复杂性更重要。

最新更新