Como todos sabemos, las cadenas se instancian implícitamente, lo que significa que no tenemos que usar new
para obtener una referencia a un objeto de una.¿ldstr implementa internamente newobj?
Debido a esto siempre era mi creencia de que el marco se hace cargo de esto, y de ahí que obtendría IL idénticos si hice algo como esto:
String first = new String(new char[] {'a'});
string second = "a";
Sin embargo, parece que la primera línea es hecho usando newobj instance void [mscorlib]System.String::.ctor(char[])
y el segundo ldstr "a"
.
Entonces, para obtener una referencia de cadena, ¿ldstr
llama internamente al newobj
y dónde puedo ver la especificación/detalles para respaldar esto?
Gracias @Brian, ¡no sabía dónde estaban los documentos! –