【发布时间】:2019-01-20 15:34:08
【问题描述】:
PVS Studio 抛出 V3022:表达式“list.Count > 1”始终为假。 Program.cs 20
public class Program
{
private static void Main()
{
var list = new List<string>();
var keyvaluelist = new List<(string, string)>() { ("1", "2"), ("3", "4") };
list.Add(DateTime.Now.ToString());
foreach ((string Key, string Value) in keyvaluelist)
list.Add(DateTime.Now.ToString());
if (list.Count > 1)
Console.WriteLine(list.Count);
}
}
这是误报吗?
【问题讨论】:
-
看来你已经证明了,是的
-
keyvaluelist包含 2 个值。您对其进行迭代并对list进行两次添加。加上当前时间的第一个加法。所以list中应该有三个元素。 -
共有三个元素,我认为 PVS Studio 无法理解新旧的元组机制。
-
堆栈溢出是创建错误报告的错误位置,如果这是您的意图。在这里试试:viva64.com/en/about-feedback
-
虽然这是“为什么它不起作用”并提供了 MCVE,但这个问题是不言自明的,不太可能帮助任何人(例如 print("$1",2+2) 并声明它将输出'4'并询问是否可以)。它似乎是属于其他地方的错误报告,并且在错误修复后不久就会过时。
标签: c# pvs-studio