问题源自:0505.Net基础班 | 属性
VS2017对于char字符进行逐语句调试的BUG
我们主要考虑的问题点在于张三的“Gender”问题,我们设置张三的Gender的值为“春”
但我们想要输出的只能是“男”或者“女”,因此我们在get()方法中做一些事情
但问题就是出在这里,在上两幅图中,我已经设置了断点
get()方法是在输出的时候调用的方法,因此,我在输出语句中也设置了断点
按F5和F11进行调试,到这一步,将鼠标移动到属性“Gender”发现,Gender已经有了一个值“男”
我便继续探寻其“男”这个值是什么时候给Gender的,将断点设在Person类的实例化为zhangsan时,通过监视窗口发现,张三已经被赋值了“男”。
奇怪的是,命名张三的Gender值已经是“男”,但是仍然执行了get()的代码段
为了更加清楚地表达,这个BUG,我将get()里的语句段注释
发现张三的值没有被赋值成“男”,而是正常的"0'\0'"
我将注释的代码段恢复,又出现了同样的bug,多生成一个对象李四,也同样存在这个BUG。
放上链接(你也可以调试一下):https://github.com/Link2019/charbug