gpt4 book ai didi

c# - ldstr 是否在内部实现了 newobj?

转载 作者:太空狗 更新时间:2023-10-29 21:18:46 25 4
gpt4 key购买 nike

众所周知,字符串是隐式实例化的,这意味着我们不必使用 new 来获取对对象的引用。

正因为如此,我一直相信框架会处理这个问题,因此如果我这样做,我会得到相同的 IL:

String first = new String(new char[] {'a'});
string second = "a";

但是第一行似乎是使用 newobj instance void [mscorlib]System.String::.ctor(char[]) 完成的 和第二个 ldstr "a"

因此,为了获得字符串引用,ldstr 是否会在内部调用 newobj?我在哪里可以看到支持它的规范/详细信息?

最佳答案

ldstr 为您提供对文字字符串的引用 per the documentation (记住文字字符串默认是驻留的,所以它们只创建一次)。第一条语句按预期使用 newobj 指令创建 string 的常规实例。

关于c# - ldstr 是否在内部实现了 newobj?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10111194/

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