在以下示例中,“测试v1函数被调用”失败。有没有办法通过“class V2”的实例强制调用“RunFunction”的基本实现?强制调用虚拟基本函数而不是被覆盖的函数
class V1
{
public virtual string RunFunction()
{
return "V1";
}
}
class V2 : V1
{
public override string RunFunction()
{
return "V2";
}
}
[Test]
public void TestCall()
{
var v1 = (V1)new V2();
var v2 = new V2();
Assert.IsTrue(v1.RunFunction() == "V1", "Test that v1 function was called");
Assert.IsTrue(v2.RunFunction() == "V2", "Test that v2 function was called");
}
感谢您的期待,家伙和女孩。
谢谢。但为了我的目的,我必须通过V2调用它。我无法实例化V1。 – 7wp 2010-06-14 21:03:10
V1是抽象类吗? – 2010-06-14 21:05:30
我对你想做什么感到困惑,但是通过'V2'来访问'V1'基本方法,你将不得不修改'V2'以某种方式提供一个方法或参数来触发一个调用'base.RunFunction()'。 – 2010-06-14 21:05:34