使用 C# 在子类中重写父类的虚属性时,发现了了一处 IDE 的异常,监视器中显示的值与实际变量值不一致,不知道是否是它的 BUG , 05 和 08 种均存在该问题。
代码如下:红色部分是出现异常的地方
public partial class Form1 : Form
{
public Form1 ()
{
InitializeComponent ();
}
private void button1_Click (object sender , EventArgs e )
{
SunGame pGame = new SunGame ();
pGame .Test ();
}
}
public class Game
{
public virtual Boolean IsClosed
{
get
{
return false ;
}
}
};
public class SunGame : Game
{
public override Boolean IsClosed
{
get
{
return true ;
}
}
public void Test ()
{
// 在这里输出都是正常的, 但只能提示和监视结果不对
Console .WriteLine (" 父类:" + base .IsClosed );
Console .WriteLine (" 子类:" + IsClosed );
上面两行代码分别会输出父类中的false 和子类中的true ,这里是正确的,但是将这两行代码加入监视器中会发现结果都是true, 鼠标智能提示也是如此,如下图:
}
}