gpt4 book ai didi

c# - 字符串创建

转载 作者:太空狗 更新时间:2023-10-30 00:01:23 26 4
gpt4 key购买 nike

我有一个关于在循环中创建字符串的问题,下面是一个代码示例:

 static void Main(string[] args)
{

for (int i = 1; i <= 1000000; i++)
{
Add(GetStr());
}

Console.WriteLine("hmmmmmmmm");
Console.ReadLine();
}

public static string GetStr()
{
return "OK";
}

public static void Add(string str)
{
list.Add(str);
}

在上述代码的情况下,将在内存中创建多少个字符串???

最佳答案

How many number of strings will be created in memory in case of above code

一个。 (或者实际上是两个,如果你包含 "hmmmmmmmm")

此方法返回一个常量字符串文字:

public static string GetStr()
{
return "OK";
}

它被编译成如下 IL 代码:

ldstr "OK"
ret

LDSTR操作码将推送对字符串文字的引用存储在元数据中RET操作码将返回该引用。

这意味着 "OK" 只会在元数据中分配一次。列表中的所有条目都将引用该实例。

请注意,字符串文字在默认情况下是驻留的。因此在被驻留之前不会分配“临时字符串”,因此不需要垃圾收集。

关于c# - 字符串创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com