Vistual studio 2008的一个很有意思的'Bug'
2009-11-04 16:07
295 查看
申明:这个不是C#的bug,觉得是IDE的一个bug,至少这种命名方式在工程中也比较常见,用this可以区分参数和类成员的问题,另外用变量命名方式也可以解决,这种情况我也向学生解释了如果不加this是遵循就近原则。所以不要在攻击我了。不要攻击我,也不要攻击我的学生,^_^.我只是讨论这个算不算IDE的bug问题。
最近有学生问我,对象的字段值竟然自己会变,我觉得不可能,于是她演示代码给我看:
呵呵,有点意思,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
{
{
{
{
{
Console.Write("{0}的年龄是{1}岁",name,age);
}
}
}
先不管代码意义如何,毕竟是学生用来练习构造方法和属性和字段的,下面是调用代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Student s = new Student(20,"徐晋丽");
}
}
}
,有趣的现象出现了,请注意字段的浮动值:
代码并没有给这个对象的字段赋值,学生问我问什么字段name的值也是“徐晋丽”?我也奇怪,呵呵,学生真有意思,这个细节也注意到了。
我打开即时编译窗口,如下截图:请注意即使窗口的和开发窗口的值:
呵呵,我只能告诉学生说,这个是微软开发环境的Bug了。变量感知功能的值是假的,对象的实际的值在即使窗口可以看出来并没有编化。看来刘谦也曾经在微软的Vistual Studio部门呆过.
另外提醒她说,可以注意编程规范,尽量避免参数和字段名字或者属性名字一样,如果一样的化,参数访问就近原则,如果要访问类的参数的化,用this就好了。
替这个学生牛角尖的精神感动.......
最近有学生问我,对象的字段值竟然自己会变,我觉得不可能,于是她演示代码给我看:
呵呵,有点意思,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
{
{
{
{
{
Console.Write("{0}的年龄是{1}岁",name,age);
}
}
}
先不管代码意义如何,毕竟是学生用来练习构造方法和属性和字段的,下面是调用代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Student s = new Student(20,"徐晋丽");
}
}
}
,有趣的现象出现了,请注意字段的浮动值:
代码并没有给这个对象的字段赋值,学生问我问什么字段name的值也是“徐晋丽”?我也奇怪,呵呵,学生真有意思,这个细节也注意到了。
我打开即时编译窗口,如下截图:请注意即使窗口的和开发窗口的值:
呵呵,我只能告诉学生说,这个是微软开发环境的Bug了。变量感知功能的值是假的,对象的实际的值在即使窗口可以看出来并没有编化。看来刘谦也曾经在微软的Vistual Studio部门呆过.
另外提醒她说,可以注意编程规范,尽量避免参数和字段名字或者属性名字一样,如果一样的化,参数访问就近原则,如果要访问类的参数的化,用this就好了。
替这个学生牛角尖的精神感动.......
相关文章推荐
- 这个是不是vc2008编译器的一个bug?
- 提交了 VS 2008 sp1 对 Linq to SQL 的 xml 字段类型支持的一个 bug
- visual studio 2008: fstream bug?
- 记一个比较有意思的bug,position绝对定位问题
- C# 趣事,发现一个很有意思的东西(微软bug?)
- VC 2008 一个 可能的BUG ,或者本人的无知,请有大侠解读一下
- 偶然间碰到了一个vc的一个bug,太有意思了
- Kimberly L. Tripp的sp_helpindex2 for sql server 2005/2008,并修复了for sqk2k8的一个bug
- 一个有意思的bug
- Vistual studio 的另外一个很有意思的'Bug‘_创建控件时出错
- JSF Studio 1.2 final for eclipse的一个小Bug
- .NET入门(一)如何在studio 2008的一个解决方案里切换项目执行
- Microsoft SQL Server 2008作业脚本中的一个小Bug
- Visual Studio 2008 的一个疑似Bug
- MDT2008里一个LTIapply.wsf的bug
- 9i控制台访问10g的一个有意思的bug
- Visual Studio .NET 2003 的 一个Bug(2005-5-8)
- Visual Studio 2008 的一个Bug
- java web start关于初始堆大小的一个有意思的bug
- SQL Server Management Studio 的一个bug