请问String.Empty与""的区别是什么?

 我来答
大野瘦子
高粉答主

2019-07-05 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:31.7万
展开全部

一、意思不同

实际上Empty是string类中的一个静态的只读字段,他的定义是这样的:public static readonly String Empty = "";也就是说string.Empty的内部实现是等于””的。

二、好处不同

""创建一个对象string.Empty不创建对象参考文献,这使得string.Empty更有效率。在.NET 2.0及更高版本中,所有出现在""引用相同的字符串文字,这意味着""等于.Empty,但还是不如.Length == 0.Length == 0是最快的选择,但是.Empty使代码稍微干净一些。

三、用法不同

string.Empty不分配存储空间,""分配一个长度为空的存储空间,所以一般用string.Empty
为了以后跨平台,还是用string.empty,在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。

如果判断一个字符串是否是空串,使用if(s==String.Empty)和if(s==””)的效率是一样的,但是最高效的写法是if(s.Length==0)

string.IsNullOrEmpty的内部实现方式:

public static bool IsNullOrEmpty(string value)<br>{<br>    if (value != null)    {        return (value.Length == 0);    }    return true;}

而string str=null则是表示str未指向任何对象。

qianshangqs
推荐于2017-11-25 · TA获得超过328个赞
知道小有建树答主
回答量:504
采纳率:0%
帮助的人:343万
展开全部
string.Empty不分配存储空间
""分配一个长度为空的存储空间
所以一般用string.Empty
为了以后跨平台,还是用string.empty
在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:
string s = "";
string s2 = string.Empty;

if (s == string.Empty) {
  //
}

if语句成立

判定为空字符串的几种写法,按照性能从高到低的顺序是:
s.Length == 0 优于 s == string.Empty 优于 s == ""

您关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9022384
2012-04-14 · TA获得超过157个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:125万
展开全部
都是初始化一个空字符串,编译可以通过,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a25b0a9
2012-04-14 · TA获得超过188个赞
知道答主
回答量:91
采纳率:0%
帮助的人:39.1万
展开全部
前者不会分配内存空间,后者会分配内存空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
薛宝魁
2012-04-14
知道答主
回答量:80
采纳率:0%
帮助的人:24万
展开全部
在C#里面基本没区别 他们都是空的意思 都可以用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式