• c#中变量的作用域


    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);//相信未来(字段级的变量)
    
            }
        }
  • 相关阅读:
    过滤字符串
    sql业务分割
    如何用core自动创建model,与数据库连接
    记录日志
    easyui获取选中行上一行的数据
    获取天气插件代码
    粘包问题
    网络编程
    异常处理
    isinstance和issubclass、元类、反射
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/3663975.html
Copyright © 2020-2023  润新知