string.empty

C#用法。一个小例子... C#

用法。
一个小例子
展开
 我来答
xiangjuan314
2016-03-01 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2878万
展开全部
String.Empty是string类的一个静态常量;
String.Empty和string=””区别不大,因为String.Empty的内部实现是:
public static readonly string Empty;
//这就是String.Empty 那是只读的String类的成员,也是string的变量的默认值是什么呢?

//String的构造函数
static String(){
Empty = "";//Empty就是他""
WhitespaceChars = new char[] {
'\t', '\n', '\v', '\f', '\r', ' ', '\x0085', '\x00a0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' '李明, ' ', ''唯迅, '\u2028', '\u2029', ' ', ''
};

}

再看一段代码:
string s1 = "";
string s2 = string.Empty;
if (s1 == s2)<br>{
Console.WriteLine("一模一样!");
}
// 结果都是True
Console.WriteLine("".Equals(string.Empty));
Console.WriteLine(object.ReferenceEquals(string.Empty, ""));

既然String.Empty和string=””一样,同样需要占用内存空间
string.Empty只是让代哪山告码好读,防止代码产生歧义,比如说:
string s = ""; string s = " "; 这个不细心看,很难看出是空字符串还是空格字符。

如果判断一个字符串是否是空串,使用
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;
}
大野瘦子
高粉答主

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

一、意思不同

实际上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未指向任何对象。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ThinkIBM
推荐于2017-09-22 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5469万
展开全部
string.Empty就相当于""
一般绝禅悉用于字符串的初始化
比如:
string a;
Console.WriteLine(a);//这里会报错,因为没有初始化a

而下面不会报袭燃错:
string a=string.Empty;
Console.WriteLine(a);

或者用于比较:
if(a=="")
if(a==string.Empty)
上面并乎两句是一样的效果。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ydalbj1984
2007-09-23 · 超过29用户采纳过TA的回答
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:106万
展开全部
private string QueryChildtree(int parentID,string allNodes)
{
string theresult = String.Empty;
string next = allNodes;
DataTable dtChildTree = Query(parentID).Tables[0];
for (int i = 0; i < dtChildTree.Rows.Count;i++ )
{
int clientid=Convert.ToInt32(dtChildTree.Rows[i][0]);
//clientid.ToString()

if ("".Equals(theresult))
theresult += clientid;
else
theresult += "旁局," + clientid;
next += "橡族," + clientid;
int flag = allNodes.IndexOf(clientid.ToString());
if (flag == -1)
{
string resultofchild = QueryChildtree(clientid, next);
if (!"".Equals(resultofchild))
theresult += "," + resultofchild;
}
}
return theresult;

}

我以前写的查找所有子节点的方法,用到了string.Empty
string theresult = String.Empty;
目的是找到第一个符合条件梁启弊的值,","别多加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三根鞋带
2007-09-23 · TA获得超过2260个赞
知道大有可为答主
回答量:1156
采纳率:0%
帮助的人:0
展开全部
我很想骂你了.
这样学下去,你没有希望了.这样的问题你要自己探索,API算个什么?最基本的几个函数你还要别人给你举例子,自告缓己唤友闭试一下不就知道了.

看你每和裂天下这么多工夫做程序,没想到这样简单的东西都没搞清爽,难道只会抄代码?

该思考的时候了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式