首先說一下定義:
- 申明為類型級的變量為字段;
- 在方法中申明的變量為局部變量。
- 如果方法中局部變量與字段申明名稱相同,那么在方法調用時首先使用的是局部變量而隱藏類型級變量,直至方法結束。
例子1:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleApplication1 8 { 9 class Program 10 { 11 static int i = 10; 12 static void Main(string[] args) 13 { 14 int i = 20; 15 Console.WriteLine("main i = {0}",i); 16 17 Console.ReadKey(); 18 } 19 } 20 }
結果:main i = 20
例子2:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleApplication1 8 { 9 class Program 10 { 11 static int i = 10; 12 static void Main(string[] args) 13 { 14 int i = 20; 15 Console.WriteLine("main i = {0},static i={1}",i,Program.i); 16 17 Console.ReadKey(); 18 } 19 } 20 }
結果:main i = 20,static i=10
由此結論,要調用相同名稱的字段與局部變量時,對於字段可以使用object.filename語法實現。