C#学习笔记(二十八) 变量Field

                                                          变量

变量是程序执行时储存在内存中的数据。

  • 变量的种类有

    1.局部变量   在方法的作用域保存的临时数据
    2.字段          保存和类型或类型实例相关的数据
    3.参数          用于从一个方法到另一个方法传递数据的临时变量
    4.数组元素   数据项构成的有序集合的成员

  • 变量的作用域

变量的作用域是可以访问该变量的代码区域。确定作用域遵循规则:
        1.字段在类的作用域内。
        2.局部变量在声明该变量的块语句或者方法结束之前的作用域内。
        3.在循环体内的声明的局部变量的作用域在循环体内。
局部变量作用域内冲突
        同名的局部变量不能在在同一作用域内声明两次。
局部变量和字段的作用域冲突
       同名的局部变量和字段可以在类的作用内声明两次。字段可以在类的作用域内进行引用,但是局部变量可以在其所在的作用域内隐藏同名的字段。如果想要在局部变量所在的作用内访问字段,则需要使用this关键字。

    class Program
    {
        int age = 6;//字段/成员变量
         void Main(string[] args)
        {
            var age = 5;//局部变量
            Console.WriteLine($"age's type is {this.age}");//引用字段而不是局部变量
        }
    }
  • 局部变量和字段的区别

1.生存期
     字段是从实例被创建时开始,知道实例不再被访问时结束。
     局部变量是在它的块中被声明处开始,在块完成执行时结束。
2.隐式初始化
     字段是能够初始化该类型的默认值。
     局部变量不能隐式初始化;如果变量在使用之前没有被赋值,编辑器会报错。
3.存储区域
     类的所有字段都是存储在堆里,无论是引用类型还是值类型。
     局部变量是值类型存储在栈里;引用类型的引用储存在栈里,数据存储在堆里。
   

发布了35 篇原创文章 · 获赞 67 · 访问量 8513

猜你喜欢

转载自blog.csdn.net/EngraveSmile/article/details/103437566