我已A.Test()
声明为public virtual
并B.Test()
声明为private new
。
我是base.Test()
从那C
继承而来的B
。
此代码使用 Mono 2.10.2 编译,但抛出MethodAccessException
:
class A {
public virtual void Test () { }
}
class B : A {
private new void Test () { }
}
class C : B {
public C ()
{
base.Test ();
}
public static void Main (string[] args)
{
var c = new C ();
}
}
这是我得到的例外:
System.MethodAccessException: Method TestBug.B:Test () is inaccessible from method TestBug.C:.ctor ()
这是正确的行为吗?
这可以在 Microsoft .NET 中编译还是在 Mono 的较新版本中编译?
C# 规范对此有何评论?
它是否因 C# 版本而异?