字段和局部变量的作用域冲突

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 namespace Wrox
 6 {
 7     class Program
 8     {
 9         static int j = 20;
10         static void Main(string[] args)
11         {
12             int j = 30;
13             Console.WriteLine(j);
14             Console.WriteLine(Program.j);
15             Console.ReadLine();
16             return;                     
17         }
18     }
19 }

虽然在Main()方法的作用域内声明了两个变量j,这段代码也会编译--在类级上定义的j和Main()方法中定义的j,在该类删除前是不会超出作用域的;类级的变量j会被看成字段,此时Main()方法中的新变量j隐藏了同名的类级变量,所以运行代码时会显示数字30;如果要引用类级变量j时,只能使用类本身的名称。

                     字段和局部变量的作用域冲突_第1张图片

你可能感兴趣的:(局部变量)