我有以下界面:
public interface IInterface<out T> {
T Value { get; }
}
和两个扩展方法(在与接口相同的命名空间中):
public static class InterfaceExtensions
{
public static void ExtensionAny<T>(this IInterface<T> ifc) { }
public static void ExtensionEnumerable<T>(this IInterface<IEnumerable<T>> ifc) { }
}
以下代码编译没有任何问题:
IInterface<IEnumerable<string>> enumerable = null;
IInterface<IList<string>> list = null;
enumerable.ExtensionAny(); enumerable.ExtensionEnumerable();
list.ExtensionAny(); list.ExtensionEnumerable();
但Visual Studio在ExtensionEnumerable
变量上的IntelliSense中没有显示list
。
我已经尝试重置VisualStudio设置并删除了所有自定义扩展程序,但它没有帮助。我还尝试使用VisualBasic.NET中的IInterface<IList<string>>
,并在IntelliSense中显示 ExtensionEnumerable
。
更糟糕的是,我的一些朋友在智能感知列表中使用这种方法,而其他人不知道 - 它并不依赖于ReSharper。
我只想拥有ExtensionEnumerable
方法的智能感知,任何建议?