显然,扩展方法不适用于子类,还是仅仅是我?
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
更新
这个问题中有一个拼写错误(我要离开以便其余部分有意义) - 我忘了让Child
继承Parent
。
碰巧,我真正的问题是我没有适当的using
声明。
(不幸的是,我无法删除,因为答案太多了。)
答案 0 :(得分:7)
这应该可以正常工作(LINQ扩展构建在IEnumerable<T>
之上,它们适用于List<T>
等。)。问题是Child
在您的示例中不会从Parent
继承。