use*_*808 4 c# variables methods scope class
为什么我可以从"method()"而不是从Main()方法访问X变量?
class Program
{
int X; // this is the variable I want access
static void Main(string[] args)
{
int a;
a = X; // this doesnt work, but why?
}
void metodo()
{
int b;
b = X; //this works, but why?
}
}
Run Code Online (Sandbox Code Playgroud)
SWe*_*eko 13
尝试
static int X
Run Code Online (Sandbox Code Playgroud)
X是一个实例变量,这意味着您的类的每个实例都有自己的版本X.但是,Main是一个静态方法,这意味着Program该类的所有实例只有一个Main ,所以它访问没有意义X,因为可能有多个X或者根本没有,如果没有Program实例已创建.
使X本身静态,意味着所有Program实例都将共享X,因此共享方法将能够访问它.