码迷,mamicode.com
首页 > Windows程序 > 详细

C#中String.Empty,“”,NULL的区别

时间:2015-06-01 12:52:19      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

一、String.Empty

String类的静态只读字段。定义如下:

public static readonly string Empty;


二、“”

被赋值为“”的字符串变量,会在栈上保存一个地址(占4个字节),该地址会指向 同时在堆上分配一个长度为0的内存空间(存放字符串的值)。

三、null

被赋值为null的变量,会在栈上保存一个地址(占4个字节),该地址不会指向堆上的任何内存空间(1、初始赋值时不分配内存;2、将原来所指的内存空间变为不可达)。

总结:

1、String.Empty 和 “” 基本相同,String.Empty只是一种在语法上对“”的优化;

2、String.Empty(“”) 和null的区别是,前者地址指向某一个堆中某一内存空间,而后者不指向堆上的任何内存空间。

参考资料:

http://blog.csdn.net/henulwj/article/details/7830615

http://www.cnblogs.com/fanyong/archive/2012/11/01/2750163.html

C#中String.Empty,“”,NULL的区别

标签:

原文地址:http://www.cnblogs.com/wangwangfei/p/4543579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!