困在“名称可以简化”和“类型参数无法推断”之间

时间:2017-03-30 17:30:40

标签: c# visual-studio refactoring resharper .net-4.5

Visual Studio似乎正在与自己战斗,因为它在两次之间反复弹跳,告诉我我的类型信息太多而且不够。

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

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

Visual Studio(2015年和2017年全新安装 - 都使用ReSharper)给我提示IDE0001 Name can be simplified并建议重构以下内容:

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

Suggested Refactoring

一旦我接受了提议的重构,我现在得到一个编译错误: The type arguments for the method ...ReturnResultOrThrowError<T> cannot be inferred from the usage. Try specifying the type arguments explicitly.

Compile Error

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

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

这里讨论的函数定义是:

private T ReturnResultOrThrowError<T>(Func<CachedResult<T>.Atom> getResultAtom)

0 个答案:

没有答案