相关疑难解决方法(0)

使用加号时会创建多少个String对象?

在下面的代码中使用加号时,将创建多少个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中以提高性能,但这不是问题.

c# string clr

115
推荐指数
6
解决办法
5327
查看次数

为什么添加两个空字符串的结果不为null?

当我在.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将其添加到自身后的值,其值为""(无字符).

c# string null

42
推荐指数
3
解决办法
2541
查看次数

标签 统计

c# ×2

string ×2

clr ×1

null ×1