问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在C#中 String.Empty和 "" 有什么区别

发布网友 发布时间:2022-04-22 05:43

我来回答

1个回答

热心网友 时间:2022-04-27 14:36

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的值为零长度字符串 ""。



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.Empty ?

string.Empty只是让代码好读,防止代码产生歧义,比如说:

string s = "";  string s = " ";   这个不细心看,很难看出是空字符串还是空格字符。

 

如果判断一个字符串是否是空串,使用

if(s==String.Empty)和if(s=="")的效率是一样的,但是最高效的写法是

if(s.Length==0)

string.IsNullOrEmpty的内部实现方式:

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

   

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
信用卡都需要什么手续 我看上了几个我的女性朋友,我想上了她们几个,请问有什么办法可以上了她... 我的微信号有几个?怎么才可以解除? 怎样做出正宗的川味口水鸡? 随州优势喷泉设计公司供应商 如何制作音乐喷泉 喷泉设计安装厂家 一九八二年五月十三日零辰三到五点出生问婚姻,命运? 1983年5月13日农历早上七点出生的女士适合当老师吗? 1983.5.13午时出生的女人算命 请问String.Empty与""的区别是什么? string.empty 华为授权培训中心石家庄有哪几家? 郑州哪里有华为认证培训班?(广告勿扰) 华为认证可以在郑州哪里培训 华为认证培训机构哪里有! 雷神笔记本开机就这样 按f2 f7 f8都没用 这是怎么... 雷神电脑开不了机怎么办 怎样练臂力---我想打好拳击 怎么才能把手臂的肌肉练得很好看? 怎么锻炼才能进行更好的手臂增肌? 我要锻炼出手臂的大块肌肉,怎样的方法最快??? 怎么练手臂肌肉比较快 怎样才能练出绝佳的手臂肌肉?有什么好的建议? 怎样快速练出手臂肌肉 怎样练手臂肌肉最快最有效?要说一天多少组。 中国超算处理器是用什么软件设计的? 2013超级计算机排名 世界上最快超级计算机前十名 中国排名第一的超级计算机对军事发展的意义。 世界排名第一的中国超级计算机天河二号在什么地方使用 String.Empty,string=””和null的区别 C#中string.Empty,""和null 之间的区别 null和String.Empty的区别 String.Empty,NULL和""的区别 为什么string.Empty 不分配存储空间 string[] str = null; string[] str; string[] str... 跪求empty string 是怎么回事,该怎么改 这句C#代码中的string.Empty是什么意思 private st... string.Empty与String.Empty有区别吗? string s = ""; 与 string s = string.Empty; 有什... string操作中s.empty()怎么用 插入数据库的时候用string.empty和Null有何区别 C#中null与string.Empty有啥区别 为什么不建议使用=="", 而要用string.Empty? string.empty和null的区别 12337全国扫黑办举报平台举报 曲江的黑社会老大是王虎弟吗? 公安部打黑办电话,地址 您好、打黄扫黑举报电话? 陕西省反黑举?