class Program
    {
        static void Main(string[] args)
        {
            string str = "abcdef";
            Console.WriteLine(str[0]);                        char[] chr = str.ToCharArray();
            Console.WriteLine(chr[0]);
            Console.ReadKey();
        }    }输出结果都是a, 
【1】为什么  字符串str 不用定义成字符数组, 就可以直接当做字符数组str[]输出呢?【2】既然可以直接当做字符数组输出,那还要str.ToCharArray()方法有什么用?这不是多此一举么?

解决方案 »

  1.   

    string的索引器是只读的,就是说str[0]='xx';赋值操作是不可能实现的str.ToCharArray()转换成char[]数组后就可以有赋值操作了如果只想 只读操作 不转换也行,字符串本来就是一个char数组
      

  2.   

    【1】string 类实现了 index 方法,可以用 [] 方式访问【2】类型不一样啊,不同的应用场景需要不一样的类型,单纯lz的输出操作自然没必要