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);//相信未來(字段級的變量)        }    }新聞熱點
疑難解答