在下面的代码中使用加号时,将创建多少个String对象?
String result = "1" + "2" + "3" + "4";
Run Code Online (Sandbox Code Playgroud)
如果它如下,我会说三个String对象:"1","2","12".
String result = "1" + "2";
Run Code Online (Sandbox Code Playgroud)
我也知道String对象被缓存在String Intern Pool/Table中以提高性能,但这不是问题.
当我在.Net编程中遇到这种奇怪的行为时,我正在C#中摆弄.
我写了这段代码:
static void Main(string[] args)
{
string xyz = null;
xyz += xyz;
TestNullFunc(xyz);
Console.WriteLine(xyz);
Console.Read();
}
static void TestNullFunc(string abc)
{
if (abc == null)
{
Console.WriteLine("meow THERE ! ");
}
else
{
Console.WriteLine("No Meow ");
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了输出No meow
,这意味着字符串不是null
.这怎么可能?为什么添加两个null
字符串会导致非null
字符串?
在调试时,我检查xyz
将其添加到自身后的值,其值为""
(无字符).