C#与.NET程序员面试宝典 3.1.5 面试题24:如何理解C#中变量的作用域

这个问题切入点比较小,目的是要考察应聘者对于C#类型语法的掌握。应聘者在回答此类问题时,不仅仅要考虑是否存在作用域的问题,而且要思考相关的设计问题。

 

【出现频率】★★★★

 

【关键考点】

变量的作用域

变量的作用域规则

 

【考题分析】

在C#语言中,变量的作用域是指可以访问该变量的代码区域。变量的作用域具有以下3个规则:

(1)只要变量所属的类在某个作用域内,其字段(也称为成员变量)也在该作用域中。

(2)局部变量存在于声明该变量的块语句内,或者方法结束的大括号之前的作用域。

(3)在for或while循环中声明的变量,只存在于该循环体内。

 

依据C#中变量的作用域规则,笔者编写一个简单的实例,代码如下所示。

using System;

namespace MyConsole

{

    class ScopeValue

    {

        static int k = 44;                                                           //定义一个变量K

        public static void Main()

        {

            int k = 88;                                                             //定义一个变量K

            /*两个循环中都使用了i ,但都可以正常输出,因为每个i的作用域都

在其对应的两个循环体内。*/

            for (int i = 0; i < 10; i++) { Console.WriteLine(i); }

            for (int i = 0; i < 20; i++) { Console.WriteLine(i); }

            /*在这段代码中,第一个K的作用域是整个类,也就是类的字段,

            第二个K的声明会替代第一个K,所以该程序会输出88.*/

            Console.WriteLine(k);

            Console.WriteLine(ScopeValue.k);

            Console.Read();

        }       

    }

}

 

【答案】

在C#语言中,变量的作用域是指可以访问该变量的代码区域。只要变量所属的类在某个作用域内,其字段(也称为成员变量)也在该作用域中。局部变量存在于声明该变量的块语句内,或者方法结束的大括号之前的作用域。在for或while循环中声明的变量,只存在于该循环体内。

posted @ 2010-11-01 17:18  面试宝典  阅读(1955)  评论(4编辑  收藏  举报