• 值类型与引用类型


         C#中一个参数的类型有值类型与引用类型,像int、bool、double、decimal、char、struct、enum等是属于值类型,而像string、自定义类、数组等是属于引用类型

         (1)值类型继承自System.valueType,而引用类型继承自System.Object。

         (2)值类型的长度是固定的,引用类型的长度是可变的,并且值类型的值不能为null,如果要将值类型的值赋值为null,就要将值类型定义为可空的类型  int? a=null;

         (3)在储上值类型存储在栈中,而引用引用类型存储在堆中,引用类型同样在栈中开辟了空间,用来存放指向堆中的地址

          

    //定义一个Person类
    public class Person
    {
    public string Name{get;set;}
    public int Age{get;set;}
    }
    public void Fun()
    {
    Person p=new person();
    p.name="11";
    
    Person p1=p;//把p在栈中开辟的地址复制给p1,这样p1就指向p在堆中开辟的空间
    p1.name="22";
    console.writeline(p.name)//输出的结果是"22";
    };
    Person p1=p是把p在栈中开辟的地址假设为0x0001,这个地址指向的是p在堆中开辟的一块空间,赋值给了p1,这样p1的地址也就为0x0001,这样p1就指向了0x0001这个地址指向的空间

          而引用类型中string作为一个特殊的存在,具有不可变性的特点

    string str1 = "aa!";
    string str2 = "bb";
    string str3 = str2;
    Console.WriteLine("{0} {1} {2}", str1, str2,str3);

    //输出的结果是  aa bb bb

  • 相关阅读:
    自定义jdbc框架
    sql 批处理、获取自增长、事务、大文本处理
    数据库设计
    数据约束
    mysql操作之二
    mysql基本操作
    38. 外观数列
    合并两个有序链表
    有效的括号
    实现strStr
  • 原文地址:https://www.cnblogs.com/Opiece/p/4657922.html
Copyright © 2020-2023  润新知