变量的作用域
一、方法中的变量的作用域
public static void Main()
{
int j=20;
for(int i=0;i<10;i++)
{
int j=30;
...
}
}
出错!int j=20的作用域在整个方法体中,for循环也是它的作用域,相当于定于了两个j.
二、c#将声明为类型级的变量看作是字段,而在方法体中声明的变量看做局部变量。
class s
{
int j=20;
public static void Main()
{
int j=20;
for(int i=0;i<10;i++)
{
}
}
}
正确!Main()中的局部变量j隐藏了类变量j。
三、又一个出错的例子
using System;
class s
{
static int j=20;
public static void Main()
{
Console.WriteLine(j);
int j=30;
Console.WriteLine(j);
}
}
出错!因为第一个Console.WriteLine(j)将类字段j=20引了进来,当再在方法中声明另一个j时,引起冲突。
如果想在方法中使用类的字段,静态字段用 类名.j ,非静态字段用this.j
浙公网安备 33010602011771号