美文网首页C#简单总结
2.C# 值类型与引用类型

2.C# 值类型与引用类型

作者: 小王子是偷影子的人 | 来源:发表于2017-08-31 14:23 被阅读0次

值类型

值类型的变量直接存储数据。

值类型:byte,sbyte,short,ushort,int,long,float,double,decimal,char,bool,struct,enum

值类型变量声明后,不管是否已经赋值,编译器都会为其分配内存。

C#中的所有值类型均隐式派生自System.ValueType,而System.ValueType继承自System.Object

值类型是堆栈分配,或者分配结构中的内联。

每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。

所有值类型都是密封的,无法派生出新的值类型。


引用类型

引用类型的变量持有的是数据的引用,数据存储在数据堆中。

引用类型:string,class,object,interface,delegate,数组

一般引用类型直接继承于System.Object

当声明一个类时,只在栈中分配一小片内存用于容纳一个地址,而此时并没有为其分配堆上的内存空间。

当使用new创建一个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的小片空间中。

引用类型可以派生出新的类型;值类型不行呦。

引用类型可以包含null值;值类型不行(可空类型功能允许讲null赋值给值类型)。

引用类型变量的赋值只是复制对对象的引用,而不复制对象本身;而将一个值类型变量赋值给另一个值类型变量时,将复制包含的值。

注意:所有的数据类型都是对象。

相关文章

  • 2.C# 值类型与引用类型

    值类型 值类型的变量直接存储数据。 值类型:byte,sbyte,short,ushort,int,long,fl...

  • 极客学院

    1.初级ASP.NET工程师 2.C#语言基础 2.C#的值类型 3.C#的引用类型-part1 3.C#的引用类...

  • javascript复习笔记一(变量类型与计算)

    变量类型:分为值类型与引用类型 一、值类型与引用类型 值类型:存储的是具体的值(undefined、Boolean...

  • JavaScript中的浅拷贝与深拷贝

    值类型与引用类型 谈浅拷贝与深拷贝之前,我们需要先理清一个概念,即值类型与引用类型。 什么是值类型与引用类型?这要...

  • 深拷贝与浅拷贝

    一.引用类型与值类型 我们都知道,js有两种基本类型,引用类型与值类型。引用类型的“=”只是拷贝了引用,而基本类型...

  • Note 3 Swift (1)

    Swift学习笔记 变量与常量 变量 常量 值类型与引用类型 值类型 引用类型 数组与字典 数组 字典

  • C#中数据到底存在堆上还是栈上

    C#的栈与堆 首先复习一下值类型与引用类型 1. 值类型与引用类型 值类型:基本数据类型([int,long,fl...

  • 装箱拆箱Day0817

    //值类型和引用类型之间的转换称为装箱与拆箱 //装箱是值类型转化为引用类型 //拆箱是引用类型转化为值类型 in...

  • JS基本类型、引用类型梳理

    原始值类型与引用值类型 ECMAScript规范中定义了变量的两种类型:原始值类型和引用值类型。区别两种类型的直接...

  • Js基础知识-变量类型

    JS值类型与引用类型 值类型 string number boolean symbol underfind 举例 ...

网友评论

    本文标题:2.C# 值类型与引用类型

    本文链接:https://www.haomeiwen.com/subject/lzsqjxtx.html