对 Func 的引用不明确
我正在使用 ReSharper 5.1 和 Visual Studio 2010。
如果我创建一个新的可移植类库项目并插入以下内容:
using System;
public interface TestInterface<T>
{
void FindAll(Func<T> f);
}
ReSharper 会将对“Func”的引用突出显示为不明确的引用。选择“转到声明”可以选择
- 来自 mscorlib 4.0.0.0 的公共委托 TResult Func
()
或
- 来自 System.Core 2.0.5.0 的公共委托 TResult Func
()
但是,C#编译器成功构建此代码。挂起 ReSharper 并选择“转到定义”表明所选取的实际定义来自 System.Core.dll,v4.0.30319
为什么 ReSharper 会感到困惑?
使用标准 C# 类库项目类型不会出现此问题,只有使用可移植类库项目类型时才会出现此问题。
I'm using ReSharper 5.1 and Visual Studio 2010.
If I create a new Portable Class Library project and insert the following:
using System;
public interface TestInterface<T>
{
void FindAll(Func<T> f);
}
ReSharper highlights the reference to 'Func' as an ambiguous reference. Selecting 'Go to declaration' takes me to a choice of
- public delegate TResult Func<out TResult>(), from mscorlib 4.0.0.0
or
- public delegate TResult Func<TResult>(), from System.Core 2.0.5.0
However, the C# compiler builds this code successfully. Suspending ReSharper and selecting 'Go To Definition' indicates that the actual definition being picked up is from System.Core.dll, v4.0.30319
Why is ReSharper getting confused?
The problem does not happen using a standard C# class library project type, only with a portable class library project type.
I noticed this problem while examining the source code of the C5 Generic Collection Library
for C# and CLI
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论