我需要对以下代码做一些澄清。我知道str.Length将返回字符串中的字符数。
string str = "Sample string";
int length = str.Length;
我的澄清是:由于我们没有创建字符串对象,如何将“Sample string”字符串分配给str变量?
答案 0 :(得分:4)
字符串文字"Sample string"
由编译器创建,并将为您存储在程序集中。当您将其分配给引用时,您将获得对该文字字符串的引用。
有一个ldstr
instruction专门将文件字符串从程序集元数据加载到string
对象引用中。正是该引用已经检查了Length
属性。
答案 1 :(得分:1)
编译器正在为您创建字符串对象。
答案 2 :(得分:0)
当您在内存中说"Sample String"
时,会创建一个新的字符串对象,就像调用new String("Sample String");
一样。这只是一个提高可读性的宏。