关于C#局部变量范围的问题

Ptr*_*Ptr 1 c# variables scope

我只是想知道,我以为我不能有同名的变量:

int Test;
public void A(int Test)
{

}
Run Code Online (Sandbox Code Playgroud)

为什么这会编译?我知道我可以使用这个关键字,但我觉得很奇怪,因为该方法在类的范围内,它允许我声明具有相同名称的变量.

And*_*rey 11

int Test;不是变量,而是场.局部变量可以与字段具有相同的名称.如果您引用name,则局部变量具有首选项.如果你想引用字段然后使用this.


Joe*_*orn 8

那些变量有不同的名字!

第一个变量的名是真的MyType.Test,而第二个变量(函数参数)就是Test.