C#值类型和引用类型

2021-05-05 09:28

阅读:389

标签:独立   结构   之间   bsp   输出   相互   last   地址   line   

值类型和引用类型通俗来讲:就是存储的地方不一样,

值类型 int double bool char  struct(结构) enum(枚举)  存放在托管堆上边,

引用类型:string  object class  存放到栈上。

简单来说  比如 int a=1; int b=a;那么为b赋值的时候,就是把a的值复制一份,在内存中心创建一块区域保存b的值。a和b的存储是独立的

class a=new class(); class b=a;那么为b赋值的时候,仅仅把a的引用地址复制给b。这样a和b就指向内存中的同一个地址。a和b是关联的。

值类型是对象与对象之间的相互赋值

引用类型 赋的是引用地址 没有值的传递

 

    class Program
    {

        public class Staff
        {
            //引用类型
            public string FirstName { get; set; }
            public string LastName { get; set; }
            public int Salary { get; set; }
        }

        public struct Employee
        {
            public string FirstName { get; set; }
            public string LastName { get; set; }
            public int Salary { get; set; }
        }

   }

        static void Main(string[] args)
        {

        Staff s1 = new Staff { FirstName = "123" };
        Staff s2 = s1;  //只赋值地址 不赋值
        s2.FirstName = "abc";
        Employee e1 = new Employee { FirstName = "123" };//e1="123"
        Employee e2 = e1;
        e2.FirstName = "abc";
        Console.WriteLine("s1=" + s1.FirstName + ", e1=" + e1.FirstName);

       }

最后输出s1=abc  e1=123

 

C#值类型和引用类型

标签:独立   结构   之间   bsp   输出   相互   last   地址   line   

原文地址:http://www.cnblogs.com/qixiaolan/p/7683852.html


评论


亲,登录后才可以留言!