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)));
一旦我接受了提议的重构,我现在得到一个编译错误:
The type arguments for the method ...ReturnResultOrThrowError<T> cannot be inferred from the usage. Try specifying the type arguments explicitly.
它到底想让我在这做什么?
我是一个“0错误0警告”类型的人,所以我讨厌像这样的代码风格建议必须被忽略 - 特别是如果它简化了代码。不确定我的VS有Resharper的事实是否有影响。
这里讨论的函数定义是:
private T ReturnResultOrThrowError<T>(Func<CachedResult<T>.Atom> getResultAtom)