ToCharArray会做一个复制内部char数组的操作,但是和装箱/拆箱无关。
应该不会拆箱,因为没有必要!
ToCharArray(); 内部实现是一个 char[] 数组的拷贝
建立一个char数组 然后指针跑来跑去啊, 就晕了. ^_^
唔,String内部维护了第一个字符的一个变量, 以这个变量地址开始,然后指针一路++下去
那么可以得到, 内部应该是一个char数组. ToCharArray() 以及这个函数的一些其他重载, 可以理解为在cha[] 之间玩的.
呃, 在这函数中,还是新建了一个char[]的 -.- 这算什么呢...
char[]是引用类型,哪来的装箱拆箱
如果概念模糊的话,不如把你自己想到的多个解决方案都实验一下,事实胜于雄辩,呵呵。
不会
装箱拆箱只在引用类型和值类型之间转换时发生
Code
class Program
{
static void Main(string[] args)
{
string str = "hello world!";
char[] chars = str.ToCharArray();
for (int i = 0; i < chars.Length; i++)
{
Console.WriteLine(chars[i].ToString());
}
}
}
从生产IL中可以看出没有进行装箱拆箱