扩展方法不适用于子类?

Ben*_*jol 4 .net c# extension-methods

显然,扩展方法不适用于子类,还是仅仅是我?

private class Parent
{        
}

private class Child
{
}

public static class Extensions
{
    public static void Method(this Parent parent)
    {
    }
}

//Test code
var p = new Parent();
p.Method();            // <--- compiler like
var c = new Child();
c.Method();            // <--- compiler no like
Run Code Online (Sandbox Code Playgroud)

UPDATE

在这个问题上有一个拼写错误(我要离开,以便其余的有意义) - 我忘了Child继承Parent.

碰巧,我真正的问题是我没有适当的using陈述.

(不幸的是,我无法删除,因为答案太多了.)

Chr*_*ich 7

这应该可以正常工作(LINQ扩展是建立在其上的IEnumerable<T>,并且它们可以用于List<T>等等).问题是在您的示例Child中没有继承Parent.