如果我没有显式地提供可选参数,为什么Resharper会说“参数不匹配”?

如果我没有显式地提供可选参数,为什么Resharper会说“参数不匹配”?,resharper,optional-parameters,default-arguments,Resharper,Optional Parameters,Default Arguments,我的项目使用.NET4.0客户端 下面的代码片段 #if DEBUG string key = "pldi6z3n3vfz23czhano"; #else string key = "bh7aaqmlmd0bhd48g3ye"; #endif using (new Analytics(key, userInfo))... 在调试和发布配置中编译并运行良好。但是,如果调试配置在VisualStudio中处于活动状态,则Resharper red会在我传递给Analytic

我的项目使用.NET4.0客户端

下面的代码片段

#if DEBUG
    string key = "pldi6z3n3vfz23czhano";
#else
    string key = "bh7aaqmlmd0bhd48g3ye";
#endif
    using (new Analytics(key, userInfo))...
在调试和发布配置中编译并运行良好。但是,如果调试配置在VisualStudio中处于活动状态,则Resharper red会在我传递给Analytics构造函数的参数上加下划线,并表示参数不匹配。它没有提供解决问题的选项,而且由于它认为这是一个错误,而不是一个警告,因此它没有提供抑制它的功能。如果我加上第三个论点,是的,那么它是完全快乐的。构造函数的第三个参数的默认值为true,因此不必显式传递它。当然,这样做对我来说没有问题,但我对Resharper的行为感到困惑

如果有必要,Analytics类来自于使用NuGet下载的由John Hatton创建的DesktopAnalytics 1.0.1版


Resharper版本是7.1.3完整版。

这对我使用Resharper 8.0是正确的-我确实记得R在早期版本中没有很好地处理预处理器指令-因此它可能已经修复。在您的版本中,可以通过将密钥声明移到预处理器指令之外(这是一种猜测)来修复此问题


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

我没有术语,但有两个属性设置区域。其中一个显示为一个大对话框。使用应用程序、生成、生成事件、调试等选项卡。在解决方案资源管理器中,当我只需左键单击项目文件时,就会显示另一个。它有6个名称值选项。第一个是C语言级别,它被设置为C 3.0,不支持可选参数。将其设置为C4.0修复了所有问题。注意:我正在为.NETFramework4.0构建x86。我在经营一个匹配的修女


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

我试过了。没有骰子。升级到Resharper 8.2.1,问题仍然存在。我认为Resharper缓存了DesktopAnalytics DLL以前版本的信息,但清除Resharper缓存并不能解决这个问题。@TomBogle你是如何清除R缓存的?您可能还想完全删除文件夹-例如C:\Users\wal\AppData\Local\JetBrains\ReSharper\v7.1I刚刚在VS中使用了ReSharper选项页上的Clear Caches按钮。刚刚尝试了您的想法,但没有解决问题。当ReSharper给出红色Swiggly参数不匹配时,该方法的参数信息会说什么?它认为分析构造函数有不同的参数吗?我有7.1.3,但看不出你有什么问题。正如您在下面提到的,这听起来像是一个缓存问题。