请问这算不算一个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.

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

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧