小编Jak*_*ndy的帖子

圈数复杂度计数为31,这是从哪里来的?

我正在开发一个从Excel文件中提取数据的应用程序(我无法访问实际的数据库),并且我编写了一个方法,它具有从Excel电子表格中提取数据的唯一功能,如下所示.

private IEnumerable<SMEntity> ExtractSMData(List<MSExcel.Range> SMData)
{
    List<SMEntity> SMEntities = new List<SMEntity>();

    foreach (MSExcel.Range Row in SMData)
    {
        SMEntity entity = new SMEntity();
        entity.IncidentNumber = Row.get_Range("K1").get_Value();
        entity.SRNumber = Row.get_Range("L1").get_Value();
        entity.SRCategory = Row.get_Range("M1").get_Value();
        entity.SiebelClientCall = EntityConversions.DateTimeConversion(Row.get_Range("N1").get_Value());
        entity.SiebelOpenedDate = EntityConversions.DateTimeConversion(Row.get_Range("O1").get_Value());
        entity.IncidentOpenDate = EntityConversions.DateTimeConversion(Row.get_Range("P1").get_Value());
        entity.PickedUpBeforeClient = Row.get_Range("Q1").get_Value().ToString().ToLowerCase() == "no" ? false : true;
        entity.OutageStartTime = EntityConversions.DateTimeConversion(Row.get_Range("R1").get_Value());
        entity.DetectionPoint = EntityConversions.DateTimeConversion(Row.get_Range("S1").get_Value());
        entity.SecondsToDetection = EntityConversions.ConvertDetectionTimeToInt(Row.get_Range("T1").get_Value());
        entity.OutageEndTime = EntityConversions.DateTimeConversion(Row.get_Range("U1").get_Value());
        entity.MTTR = EntityConversions.ConvertMTTRStringToInt(Row.get_Range("V1").get_Value());
        entity.RepairedOnTime = Row.get_Range("W1").get_Value().ToString().ToLowerCase() == "no" ? false : true;
        SMEntities.Add(entity);
    }

    return SMEntities;
}
Run Code Online (Sandbox Code Playgroud)

我运行代码分析(我使用的是Visual Studio …

c# code-analysis fxcop cyclomatic-complexity

7
推荐指数
1
解决办法
2988
查看次数

CFIF结构拒绝工作.始终使用第一个声明

对不起,上面的内容有点模糊,很难说.我在我的代码中有一个简单的CFIF语句,将dateup设置为"st","nd","rd"或"th".但是,当代码运行时,它只是将dateup设置为" st"而没有别的.

代码如下.

     #DATEFORMAT(date, "dddd")# the #DATEFORMAT(date, "dd")#
                        <cfset dateday = #DATEFORMAT(date,"dd")#>
                        <cfif dateday eq 01 OR 21 OR 31>
                            <cfset datesup = "st">
                        <cfelseif dateday IS 01 OR 11>
                            <cfset datesup = "nd">  
                        <cfelseif dateday IS 03 OR 23>
                            <cfset datesup = "rd">      
                        <cfelse>
                            <cfset daatesup = "th">     
                        </cfif>
                        #datesup# of #DATEFORMAT(date, "mmmm, yyyy")#
Run Code Online (Sandbox Code Playgroud)

coldfusion

1
推荐指数
1
解决办法
271
查看次数

只接受C#中某个方法的某些字符串

我在C#中创建了一个方法,如下所示

public static IEnumerable<User> QueryTheAD(string filter, string identifier) {
  if ( filter == "ANiceString" ) {
    // sexy code here
  }
}
Run Code Online (Sandbox Code Playgroud)

效果很好.但是,VS正确地表明并非所有代码路径都返回一个值.

因此,我可以指定过滤器只能是以下之一:

  • "导师"
  • "年"
  • "第二个名字"

c# visual-studio

1
推荐指数
2
解决办法
268
查看次数