变量的作用域

变量的作用域是什么?

变量的作用域指的是能够使用该变量的区域。作用域既作用于方法,也作用于变量。一个标识符的作用域是从声明该标识符的那个位置开始的,不管是变量还是方法都应如此。在C#中通常用“{”和“}”来界定变量的作用范围。变量的作用域有着严格的要求,在声明变量时需要时刻记住两点:①变量名不要重复②声明变量的位置很重要。先来看一个正常的例子:

 

class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 5; i++)
            {
                int s = 12;
                Console.WriteLine(s);
            }
            Console.ReadKey();
        }
    }

这个代码没有任何毛病,在for循环内声明的变量s,在每次循环时都会被输出。但这个变量s在for循环外则并不能访问到。尝试着在for循环的下面加一句Console.WriteLine(s);会发现并没有代码智能补全,如果强行写一个s,则会报红线错误。因为变量s在for循环内部声明,所以只能在for循环内部访问。实际上那个for循环内的变量i也是如此。如果要让变量s在for循环外面也能访问,那么一开始就要在for循环外声明好变量s,比如下面代码:

class Program
    {
        static void Main(string[] args)
        {
            int s = 0;
            for (int i = 0; i < 5; i++)
            {
                s = 12;
                Console.WriteLine(s);
            }
            Console.WriteLine(s);
            Console.ReadKey();
        }
    }

这样运行则不会出现错误。但还需要注意两个细节,
细节1:在for循环外声明变量s后,如果认为“既然在for循环内声明的变量只有在for循环内有效,那么我是否可以在for循环内再写一个int s = 12;”,这样做肯定是错误的。即便作用域不一样,但也无法让for循环内外声明的变量名出现相同的情况。
细节2:如果在for循环外声明变量s时没有赋初值,比如上面代码的int s = 0;改成int s;那么虽然在for循环内部给变量s赋值了,然而走出for循环后无法执行Console.WriteLine(s);可以发现这里的s报红线错误了,所以如果要在for循环结构外部使用到这个变量,还是应该在开始就给变量赋初值。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值