Я использую ReSharper 5.1 и Visual Studio 2010.
Если я создаю новый проект Portable Class Library и вставляю следующее:
using System;
public interface TestInterface<T>
{
void FindAll(Func<T> f);
}
ReSharper выделяет ссылку на 'Func' как неоднозначную ссылку. Выбор «Перейти к объявлению» приводит меня к выбору
- открытый делегат TResult Func (), из mscorlib 4.0.0.0
или
- открытый делегат TResult Func (), из System.Core 2.0.5.0
Однако компилятор C # успешно строит этот код. Приостановка ReSharper и выбор «Перейти к определению» означает, что фактическое определение берется из System.Core.dll, v4.0.30319
Почему ReSharper запутался?
Проблема не возникает при использовании стандартного типа проекта библиотеки классов C #, только с переносным типом проекта библиотеки классов.
Я заметил эту проблему при изучении исходного кода C5 Generic Collection Library
для C # и CLI