C# 夹在;名称可以简化;及;无法推断类型参数";

C# 夹在;名称可以简化;及;无法推断类型参数";,c#,visual-studio,refactoring,resharper,.net-4.5,C#,Visual Studio,Refactoring,Resharper,.net 4.5,VisualStudio似乎在自相残杀,因为它总是在告诉我我有太多的类型信息而没有足够的类型信息之间来回跳跃 如果我使用以下函数调用: // 2. Invoke YLT download on the view. return ReturnResultOrThrowError<double[]>( () => _broker.GetYLT.TryGetValue(new GetYLT.Parameters(view, options))); 一旦我接受了建议的重构,

VisualStudio似乎在自相残杀,因为它总是在告诉我我有太多的类型信息而没有足够的类型信息之间来回跳跃

如果我使用以下函数调用:

// 2. Invoke YLT download on the view.
return ReturnResultOrThrowError<double[]>(
    () => _broker.GetYLT.TryGetValue(new GetYLT.Parameters(view, options)));

一旦我接受了建议的重构,我现在会得到一个编译错误:
无法从用法推断方法…ReturnResultTorRower的类型参数。尝试显式指定类型参数。

它到底想让我在这里做什么

我是那种“0错误0警告”的人,所以我讨厌这样的代码风格建议被忽略——特别是如果它简化了代码的话。不确定我的VS拥有Resharper这一事实是否有影响

这里讨论的函数定义是:


private T returnResultorThrower(Func getResultAtom)

什么是
TryGetValue
返回的?您的问题是“编写代码的一种方法会给我提供信息,而另一种方法会产生错误;我应该选择哪种方法?”我会选择让代码编译的方法;选择一个导致错误的选项是否有令人信服的好处?如果给出的建议是不好的建议,忽略它。并将此报告为bug;灯泡不应该提出导致代码损坏的建议。
GetYLT.TryGetValue
方法的签名是什么?只是澄清一下-这是Visual Studio,不是ReSharper。您可以很容易地判断,因为VS为所有诊断提供了一个ID,例如
IDE0001
,而ReSharper没有。它应该是Visual Studio的错误报告。
// 2. Invoke YLT download on the view.
return ReturnResultOrThrowError(
    () => _broker.GetYLT.TryGetValue(new GetYLT.Parameters(view, options)));