请问这算不算一个BUG?

zahuifan 2006-11-20 04:38:20
在VS2005中写一个类:

public class MyClass
{
private int _a;

public MyClass(int a)
{
_a = a;
}

public int a
{
get { return _a; }
}
}

使用:
MyClass myclass = new MyClass(9);
Label1.Text = myclass.a.ToString();

因为MyClass的构造函数中的参数和MyClass的属性同名(都叫做a),结果你会发现
在构造函数中的那句 _a = a; 并没有把参数a的值赋给_a, 而是调用了属性a的get操作.所以数值9根本就没有赋给_a.

对于同名(但作用域不同)的变量,访问的优先级应该是局部变量优先于全局变量吧?
那么函数的参数的优先级是否应该优先于属性呢?
...全文
64 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zahuifan 2006-11-21
我的程序是这样的,各位达人可以试一下.
回复
2005是这样么?
2003不是
回复
cancerser 2006-11-20
如果真象楼长说的那样,感觉问题还是满大的
因为我想不到如何能调到int a 这个参数
回复
myvicy 2006-11-20
不是BUG。
回复
Eddie005 2006-11-20
确实~ 不理解VS为什么要让它编译通过~
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.