日期:2014-05-20  浏览次数:21096 次

c# 疑问?方法的形参
方法的形参究竟是怎样的存在?

为什么可以使用全局变量名作为形参名?

而又不会互相冲突。

同一个名字在一个作用域之内不是只能使用一次吗?

------解决方案--------------------
class c
{
int i;
void m(int i)//第2次声明i不会冲突
{
Console.Write(i);
}
}

在这个方法 m 中
使用 i 访问的是形参 i
使用 this.i 访问的是 c 这个类中的 i
就是通过这种方式来区分的,也正是因为有方法区分,所以允许存在

但是在
static void Main()
{
int x;
for(int x;x <5;x++)//第2次声明x就会冲突
Console.Write(x);
}

这两个 x 没有任何方法可以区分,所以不允许存在

------解决方案--------------------
说得很清楚了,楼主怎么执迷不悟呢?

//在同一个范围内,计算机是怎样分辨两个同名字的变量的?
是编译器来区分,不是计算机
C#语言就是这样规定的,直接用那个变量,编译器就认为是局部变量
如果想用类成员变量,要加this.