c# - 在 c# 中,当从函数返回字符串时,内存是否被释放?

标签 c# .net clr

这就是我的意思:

class mycalss
{
   string myfunc()
   {
      string str="hello";
      return str;
   }
}
...
static void main()
{
   string str2;
   str2=myfunc();
   ...
   ...
}

在这种情况下,是否存在垃圾收集器可能会因为 str 超出范围而删除 str2 的内容的风险?

最佳答案

没有。垃圾检测器会看到 str2 有对数据的引用,它不会被收集。

关于c# - 在 c# 中,当从函数返回字符串时,内存是否被释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697456/

相关文章:

c# - 返回流是否安全?

c# - 如何在 Unity 中创建对话框(不使用 UnityEditor)?

c# - 与 .Net 邮件附件一起使用时处理 MemoryStream

c# - 尝试阅读 MS Office 文档

c# - Linq .Where() 函数总是失败

c# - 将枚举映射到用户选择复选框

c# - 当实际类型为 String 时调用 Object.ToString 时会发生什么

c# - NullReferenceexception后收到access violation exception(0xc0000005)是否正常

clr - CorFlags.exe/32BIT+ 如何工作?

.net - ServerGC 应用程序中的 GC 线程数非常高