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

 我来答
穷的只剩一只猫9585
2016-12-03 · 超过123用户采纳过TA的回答
知道小有建树答主
回答量:587
采纳率:0%
帮助的人:152万
展开全部
在C#里是一个常量表达式,所以可以用在所有要求用编译时常量的地方,例如attribute的参数、方法参数的默认值、switch里的case等等。



String.Empty

则是System.String类上的一个readonly静态字段。它虽然在运行时值不可变,但并不被看作编译时常量。所以上述要求用编译时常量的地方它都用不了。

另外一个恶心的功能是在有权限的情况下String.Empty可以通过反射修改值;这在.NET 4.0及之前能起作用,而从.NET 4.5开始由于CLR做了更多优化,就不管用了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式