值类型和引用类型

C#中数据类型

数据类型
  1. 值类型

    值类型变量可以直接分配给一个值(申请了空间),它们是从System. Value Type中派生的。

    如下面的整型数据a,是向操作系统申请了四个字节的空间

    int a;

    C#中的基本数据类型除String外都是值类型,以及struct也是值类型。

  2. 引用类型

    引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用(换而言之,记录的是地址)

    优点:传递数据时只传4个字节,高效

    内置的引用类型有:object、dynamic和string

    • 对象(Object)类型

      Object类型是通用类型,系统中所有的数据类型的终极基类。所以Object类型可以被分配任何其他类型的值,但是在分配前需要进行类型转换。【可以用C++中**void *** 去理解】

      这就涉及装箱拆箱问题

    • 动态(Dynamic)类型(区分C++的动态数据)

      可以存储任何类型的值在动态数据类型变量中,运行时才能确定类型是什么【以C++的auto类型理解】。

      声明动态类型的语法:

      dynamic <变量名> = value;

      例:

      dynamic d = 20;

      动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

    • 字符串(String)类型

      字符串类型允许给变量分配任何字符串值,它是从Object类型派生来的。

      “@”字符称为逐字字符,将转义字符当作普通字符看待【既双引号中原样输出】

      string str = “C:\windows”;

      等价于

      string str = @ “C:\windows”;

  3. 指针类型

指针类型在C#中极少使用,是不安全代码;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值