惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
H
Help Net Security
博客园 - 叶小钗
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
月光博客
月光博客
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News

博客园 - 枫之一刀

Rest的基本原则 常量 三值逻辑 (Three-Valued Logic) 多表联接 join 连接类型的区分 OBJECT_ID(Transact-Sql) 逻辑查询处理 配置数据库对象的权限 object 类型 SqlServer 用户定义函数 IEnumerable接口 泛型概述 internal关键字 yield关键字 as 关键字 装箱拆箱 is 关键字 CSS圆角实现原理(个人见解) margin
值类型和引用类型区别
枫之一刀 · 2011-08-27 · via 博客园 - 枫之一刀

值类型和引用类型区别

Posted on 2011-08-27 12:49  枫之一刀  阅读(221)  评论()    收藏  举报

值类型直接存储其职,而引用类型存储对值的引用。

值类型可以根据情况存储在堆栈上。而引用类型存储在堆上。

值类型总是放在它被声明的地方。如果值类型数据在方法体外被声明,且存在于一个引用类型中,那么它将被堆中的引用类型所取代。

C#把数据类型分为两种

  • 值类型
  • 引用类型

从概念上看,其区别是值类型直接存储其值,而引用类型存储对值的引用。

这两种类型存储在内存的不同地方:值类型存储在堆栈中,而引用类型存储在托管堆上。

注意区分某个类型是值类型还是引用类型,因为这种存储位置的不同会有不同的影响。

例如:int 是值类型,这表示下面的语句会在内存的连个地方存储值20:

i = 20;

j = i

考虑如下代码,这段代码假定已经定义了一个类Vector,Vector是一个引用类型,它有一个int类型的成员变量Value:

Vector   x,y;

x   =  new Vector();

x.Value = 30;

y = x;

Console.WriteLine(y.Value);

y.Value = 50;

Console.WriteLine(x.Value);

30,50

如果变量是一个引用,就可以把其值设置为null,表示它不引用任何对象。