私は次のような拡張メソッドを持っています
public static void RemoveDetail<TMaster, TChild>(this TMaster master, TChild child)
where TMaster : class, IMaster<TChild>
where TChild : class, IDetail<TMaster>;
そして、私には2つのクラスがあります
public class Principal : IMaster<Permission>
{
public virtual IEnumerable<Permission> Permissions { get; }
}
と
public class Permission : IDetail<Principal>
method によって受け入れられた Action からRemoveDetailを呼び出しますpublic static void Foreach<T>(this IEnumerable<T> source, Action<T> action);
。
aPrincipal.Permissions.Foreach(x => aPrincipal.RemoveDetail(x));
ReSharper は、この呼び出しを次のようなメソッド グループに置き換えることを提案しています
aPrincipal.Permissions.Foreach(aPrincipal.RemoveDetail);
これは VS2013 以前では正常に機能しましたが、VS2015 でのコンパイルでは失敗します。
「プリンシパル」には「RemoveDetail」の定義が含まれておらず、タイプ「プリンシパル」の最初の引数を受け入れる拡張メソッド「RemoveDetail」が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)
誰にも提案がありますか?この置き換えを避けるために、すべての使用法を更新し、ReSharper を作成する必要がありますか?