我有一个类似的扩展方法
public static void RemoveDetail<TMaster, TChild>(this TMaster master, TChild child)
where TMaster : class, IMaster<TChild>
where TChild : class, IDetail<TMaster>;
Run Code Online (Sandbox Code Playgroud)
我有两节课
public class Principal : IMaster<Permission>
{
public virtual IEnumerable<Permission> Permissions { get; }
}
Run Code Online (Sandbox Code Playgroud)
和
public class Permission : IDetail<Principal>
Run Code Online (Sandbox Code Playgroud)
我从方法接受的Action中调用RemoveDetailpublic static void Foreach<T>(this IEnumerable<T> source, Action<T> action);:
aPrincipal.Permissions.Foreach(x => aPrincipal.RemoveDetail(x));
Run Code Online (Sandbox Code Playgroud)
ReSharper建议我用方法组替换这个调用
aPrincipal.Permissions.Foreach(aPrincipal.RemoveDetail);
Run Code Online (Sandbox Code Playgroud)
这在VS2013和之前的版本中运行良好但在VS2015中编译失败了
'Principal'不包含'RemoveDetail'的定义,并且没有扩展方法'RemoveDetail'可以找到接受类型'Principal'的第一个参数(你是否缺少using指令或汇编引用?)
有人有建议吗?我是否必须更新所有用法并使ReSharper避免这种替换?