美文网首页
C# 值类型与引用类型

C# 值类型与引用类型

作者: ee32a09919fa | 来源:发表于2018-12-03 22:17 被阅读0次

C# 值类型与引用类型

值类型

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

值类型: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赋值给值类型)。

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

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

相关文章

网友评论

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

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