gpt4 book ai didi

c# - 为什么这些方法的圈复杂度如此之高?

转载 作者:太空狗 更新时间:2023-10-29 21:39:36 26 4
gpt4 key购买 nike

使用 Visual Studio 计算指标。

第一种方法有 CC = 4

    private IEnumerable<string> GetRows(DataTable dt, string columnDelimiter)
{
return from DataRow row in dt.Rows
select string.Join(columnDelimiter, row.ItemArray.Select(k => k.ToString()));
}

第二种方法有 CC = 5。

    private IEnumerable<string> GetRowsForeach(DataTable dt, string columnDelimiter)
{
var rows = new List<string>();
foreach (DataRow row in dt.Rows)
{
var rowString = string.Join(columnDelimiter, row.ItemArray.Select(k => k.ToString()));
rows.Add(rowString);
}

return rows;
}

我会说第一个方法应该有 CC = 1,第二个方法应该有 CC = 1 或 2(理解 foreach 和结束条件。但我永远不会说他们的 CC 这么高。我误解了什么?

最佳答案

这是一个不完美的工具。它看到 IL,即 C# 编译器生成的代码。它看不到您的 代码。 C# 中有大量语法糖,旨在使您的代码易于理解,但在水线以下有冰山一角的代码生成。查询理解当然符合这种模式。

仅将 CC 用作指南,永远不要让它设定规则,也永远不要让它束缚您的风格。您的大脑比任何工具都聪明。

关于c# - 为什么这些方法的圈复杂度如此之高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20482084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com