Can you override private virtual methods?

c#, virtual

Solution

You can't even declare private virtual methods. The only time it would make any sense at all would be if you had:

public class Outer
{
    private virtual void Foo() {}

    public class Nested : Outer
    {
        private override void Foo() {}
    }
}

... that's the only scenario in which a type has access to its parent's private members. However, this is still prohibited:

Test.cs(7,31): error CS0621: 'Outer.Nested.Foo()': virtual or abstract members cannot be private Test.cs(3,26): error CS0621: 'Outer.Foo()': virtual or abstract members cannot be private

Problem

I think you can and my colleage thinks you cannot!

Original source

Related problems