请问这算不算一个BUG?
在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.
对于同名(但作用域不同)的变量,访问的优先级应该是局部变量优先于全局变量吧?
那么函数的参数的优先级是否应该优先于属性呢?