2016-12-01 39 views
0

我們,而在下面的代碼誤報規則S2538嵌套而切換開關建設

EventLogLevel[] eventLevels = null; 
    bool reachedEnd = false; 
    while(!reachedEnd && jsonReader.Read()) 
    { 
    switch(jsonReader.TokenType) 
    { 
     case JsonToken.PropertyName: 
     string propertyName = jsonReader.Value.ToString(); 

     switch(propertyName) 
     { 
      case nameof(EventLevels): 
      eventLevels = EventSettingsJson.ParseEventLogLevelsArray(nameof(EventLevels), jsonReader); 
      break; 
      default: 
      throw new JsonParserException($"Invalid property: {propertyName}"); 
     } 

     break; 
     case JsonToken.EndObject: 
     reachedEnd = true; 
     break; 
     default: 
     throw new JsonParserException($"Unexpected Token Type while parsing json properties. TokenType: {jsonReader.TokenType}"); 
    } 
    } 

    if(eventLevels != null) 
    { 
    return new EventLogCollectionSettings(eventLogName, eventLevels); 
    } 

最後if (eventLevels != null)使用規則S2538讓誤報顯示了該消息的警告:

[更改此條件以便它不總是評估爲 「false」]。

我無法創建一個測試用例來重現它。

回答