【问题标题】:Difference between initializing a string and not initializing a string in .NET在 .NET 中初始化字符串和不初始化字符串之间的区别
【发布时间】:2011-07-24 06:29:33
【问题描述】:

我想知道在使用 new 关键字初始化字符串以及在不使用 new 关键字的情况下为字符串设置值时如何分配内存。

阿比舍克·斯里坎特

【问题讨论】:

  • 我想了解它在 .NET 中的行为方式
  • @shakeofabiomen 初始化与内存分配不同。初始化意味着您第一次为给定变量设置一个值。
  • 请注意String 没有从文字创建实例的构造函数。

标签: .net string memory heap-memory stack-memory


【解决方案1】:

使用 new 关键字初始化它的方式与使用 '=' 直接设置字符串的方式没有区别。内存都是在堆上分配的,因此一旦超出范围,垃圾收集器就负责收集内存。唯一的区别是 'new' 调用构造函数,而如果您直接使用 = 赋值,则调用重载运算符并初始化字符串的新实例。

【讨论】:

  • 这是我指定的 C#。
  • 谢谢,有道理。其他类型也会发生同样的情况吗? (像诠释)
猜你喜欢
  • 2015-01-31
  • 1970-01-01
  • 2014-07-26
  • 2023-03-14
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多