变量的作用域

一、方法中的变量的作用域

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



 

posted @ 2011-10-07 23:49  南山砍柴的  阅读(180)  评论(0)    收藏  举报