C#中的作用域和javascript中的作用域還是有區別的.呵呵
class Person { /* *確定C#變量作用域的2個規則. 1.類的字段所處的作用域等同於該字段所屬類所在的作用域; * 2.局部變量的作用域僅限於聲明它的方法的或循環體內部,以大括號{}為界. */ public string MyVar;//作用域和它所屬的類的作用域相同 public void DoSomething() { //someVar變量作用域僅限在DoSomething()方法內部,以{}為屆 var someVar = "some value"; int[] someVars = { 1, 2, 3, 5 }; foreach (var item in someVars) { Console.WriteLine(item); } //這里將無法訪問foreach循環體內部定義的item變量,編譯器會報錯 //Console.WriteLine(item); /* OtherPerson的myString字段的作用域與OtherPerson對象的作用域相同. */ OtherPerson oPer = new OtherPerson(); oPer.myString = "思思博士"; } } class OtherPerson { public string myString; } /* 關於變量作用域沖突的現象. * 1.同一個作用域內,存在兩個同名的變量,這里不關心變量的類型是否相同.如果存在這種情況,編譯器將會報錯,編譯將無法繼續. * 2.局部變量和字段變量同名,那么局部變量會將同名的字段級變量隱藏,就是說在局部變量的作用域內,局部變量的值覆蓋了字段級變量的值. */ class Human { public string myVar = "相信未來"; public void DoSomthing() { var myVar = "我相信,我就是我,我相信明天"; int[] someVars={1,2,3,5,8}; foreach (var item in someVars) { //這個地方聲明的item會報錯. //string item = "和循環重的作用域沖突!"; Console.WriteLine(item); } Console.WriteLine(myVar);//我相信,我就是我,我相信明天(局部變量) Console.WriteLine(this.myVar);//相信未來(字段級的變量) } }