有人可以解释一下为什么会这样吗?
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);
}
}
我名为ch的char数组只接受2个字符但是当我将字符串“Ivankata”转换为char数组时,它会以某种方式工作吗?它不应该削减剩余的“ankata”并仅显示“iv”吗?谁能解释一下这里发生了什么?
答案 0 :(得分:2)
它不应该削减剩余的“ankata”并仅显示“iv”吗?
不,它不是那样的。您可以在一个简单的循环中将项目分配给数组。
for (int i = 0; i < ch.Length; i++)
{
ch[i] = name[i];
}
Console.WriteLine(ch);
答案 1 :(得分:1)
string.ToCharArray()
创建一个新的char数组,并将引用存储在ch
中的新数组中。长度为2的旧数组不再被引用,很快就会被垃圾收集器收集。
答案 2 :(得分:-1)
你正在做的是你正在制作一个只包含两个索引的数组。其他将由垃圾收集器处理