zoukankan      html  css  js  c++  java
  • C# 堆与栈、值类型与引用类型、可空类型

    1.堆与栈

    栈是一种先进后出的数据结构,是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义。栈中每个指针(当运行到那个变量时)会指向堆中的某一内存区域或说是空间。

    堆(heap)就直接是内存区域了,它是为了栈的引用而开发内存的。通常内置变量就是值类型是被保存在栈中的。其他由.NET框架(Framework)提供的,或者是我们自己定义的对象即引用类型,一般被创建在堆中并将由栈中变量引用。是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。

    栈上存储的是:值类型,引用类型的“地址”

    堆上是:引用类型的“对象”或者是引用类型的实际值,可空类型

    2.值类型与引用类型

    值类型:数值型 字节  布尔  结构 枚举 ,他们都继承自System.ValueType


    引用类型:类  接口  委托 对象  字符串,他们都继承自System.Object

    3.可空类型

    在VS中敲完代码一看报错了

    只需在在DateTime类型后加个?

    这就是可空类型

    可空类型可以表示基础类型的所有值,另外还可以表示 null 值。可空类型可通过下面两种方式中的一种声明:

    1、System.Nullable<T> variable

    2、T? variable

    T 是可空类型的基础类型。T 可以是包括 struct 在内的任何值类型;但不能是引用类型。

    以上……

  • 相关阅读:
    02 Filter过滤器
    Vue入门
    Git教程
    Markdown 常用语言关键字
    王爽《汇编语言》(第三版)实验16解析
    王爽《汇编语言》(第三版)实验15解析
    王爽《汇编语言》(第三版)实验14解析
    王爽《汇编语言》(第三版)实验13解析
    王爽《汇编语言》(第三版)实验12解析
    王爽《汇编语言》(第三版)实验11解析
  • 原文地址:https://www.cnblogs.com/aehyok/p/2803746.html
Copyright © 2011-2022 走看看