1

我的项目使用 .Net 4.0 客户端。

下面的代码片段

#if DEBUG
    string key = "pldi6z3n3vfz23czhano";
#else
    string key = "bh7aaqmlmd0bhd48g3ye";
#endif
    using (new Analytics(key, userInfo))...

在 Debug 和 Release 配置中编译并运行良好。但是,如果调试配置在 Visual Studio 中处于活动状态,Resharper 会在我传递给 Analytics 构造函数的参数下加红色下划线并显示“参数不匹配”。它没有提供解决问题的选项,并且由于它认为这是一个错误,而不是警告,所以它不提供抑制它。如果我添加第三个参数,true,那么它是完全高兴的。构造函数的第三个参数的默认值为 true,因此不必显式传递它。当然,这样做对我来说没有问题,但我对 Resharper 的行为感到困惑。

如果重要的话,Analytics 类来自 John Hatton 创建的 DesktopAnalytics 版本 1.0.1(使用 NuGet 下载)。

Resharper 版本是 7.1.3 完整版。

4

2 回答 2

0

这对使用 Resharper 8.0 的我来说是正确的——我确实记得 R# 在早期版本中没有很好地处理预处理器指令——因此它可能已经修复了。通过将key声明移到预处理器指令之外,它可能会在您的版本中得到修复(这是一个疯狂的猜测)

在此处输入图像描述

于 2014-05-22T16:27:29.783 回答
0

有同样的问题。我尝试从 UI 中清除缓存并删除文件夹。重新启动重新加载的解决方案(很多次)其他类似项目都很好。

我没有术语,但有两个属性设置区域。一个显示为一个大对话框。带有应用程序、构建、构建事件、调试等选项卡。当我在解决方案资源管理器中左键单击项目文件时,会显示另一个。它有 6 个名称-值选项。第一个是“C# 语言级别”,它以某种方式设置为 C# 3.0(不支持可选参数)。将其设置为 C# 4.0 解决了所有问题。注意我正在为 .Net Framework 4.0 构建 x86。我正在运行一个匹配的 NUnit。

无论如何,这个改变为我解决了这个问题。我不知道这是怎么发生的。

于 2015-10-26T18:48:52.260 回答