将字符串转换为字符数组?

dBi*_*Bio -2 c# string chars

谁能解释我为什么会这样?

class Program
{
    static char[] ch = new char[2];
    static string name = "Ivankata";

    static void Main(string[] args)
    {
        inputChar();
    }

    static void inputChar()
    {
        ch = name.ToCharArray();
        Console.WriteLine(ch);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的名为 ch 的字符数组只接受 2 个字符,但是当我将字符串“Ivankata”转换为字符数组时,它会以某种方式工作吗?不应该把剩下的“ankata”剪掉,只显示“iv”吗?任何人都可以解释这里发生了什么吗?

Lor*_*156 5

string.ToCharArray()在内部创建一个新的 char 数组,并将对新数组的引用存储在ch. 长度为 2 的旧数组不再被引用,很快就会被垃圾收集器收集。

  • 我只能假设你回答了一些人认为不应该做的“坏”问题,因此决定惩罚答案。 (4认同)