C#关于String.Empty是怎么初始化的?

发布于 2022-09-05 03:17:42 字数 399 浏览 29 评论 0

C#关于String.Empty是怎么初始化的?

C#中String类的源码在这里:

https://referencesource.micro...

我知道String.Empty == ""是成立的,但是想知道String.Empty是怎么定义的
源码里边是这样

public static readonly String Empty;

但是也没看到初始化给它赋值呀.

记得以前的旧版本源码是直接赋值的"",但是这个我不确定在哪里给他的初始值,

求解释...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

末が日狂欢 2022-09-12 03:17:42

擅自源代码的注释:

    
    // The Empty constant holds the empty string value. It is initialized by the EE during startup.
    // It is treated as intrinsic by the JIT as so the static constructor would never run.
    // Leaving it uninitialized would confuse debuggers.
    //
    //We need to call the String constructor so that the compiler doesn't mark this as a literal.
    //Marking this as a literal would mean that it doesn't show up as a field which we can access 
    //from native.
  意思是说初始化由JIT保证,无需手动赋值。
三生一梦 2022-09-12 03:17:42

事实上并不需要赋值,因为不显式负值则在运行时会给一个默认值。int 类型的是0,String类型的就是空字符串

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文