首页 > 解决方案 > Visual Studio 2019 IDE 关于 String.Format 参数的警告

问题描述

我们的团队将使用 Visual Studio 2010 开发的大型项目升级到 Visual Studio 2019。其中一名团队成员使用String.Format(String, Object[])和 将一组对象传递给该方法,而团队的其他成员则String.Format通过将对象作为单独的参数传递来使用该方法。

这只是在 Visual Studio 2010 中开发时的风格偏好问题;但在 Visual Studio 2019 中,任何使用String.Format(String, Object[])传递数组的地方都会导致出现 IDE 警告。

由于项目很大,这些虚假警告的数量很多,通过代码“修复”未损坏的东西是不可取的;但是,这些警告确实隐藏了字符串格式与参数不正确匹配的情况(导致运行时错误)。

更奇怪的是,如果运行应用程序的计算机未使用 .NET Framework 4.8,则这些代码行实际上会引发 String.Format 异常。这对我来说没有意义,因为这个版本的 String.Format 方法在 WELL 4.8 之前就已经存在了。

这是我正在谈论的一个例子。

请注意第 9 行有 2 个警告,关于传递给 String.Format 方法的参数数量与格式中预期的数量不匹配。

在第 12 行没有警告:因为 String.Format 方法正在传递单个参数参数而不是数组。

有没有人知道为什么这会导致使用带有 .NET 版本 4.8 的 Visual Studio 2019 出现问题?或者有一个关于如何纠正这个问题的建议(最好是不需要修改一个团队成员使用他们调用 String.Format 方法的风格的每一行代码)。

在此处输入图像描述

编辑: 更新,在玩这个多一点,我发现如果数组没有声明为内联(它是事先声明的),没有错误。这在传递字符串数组和对象数组时有效。

这只会使 IDE 警告更加奇怪......

在此处输入图像描述

标签: visual-studio-2019.net-framework-version

解决方案


推荐阅读