找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
游戏黄埔已经开课啦,大家速速报名赶快上车
查看: 2534|回复: 0

为什么string str1 = new string(chars);()中要传入chars?

[复制链接]

162

主题

33

回帖

891

积分

管理员

积分
891
发表于 2024-10-23 10:30:12 | 显示全部楼层 |阅读模式
  1. char[] chars = {'H','e','l','l','o'};

  2. string str1 = new string(chars);  
  3. String str2 = new String(chars);

  4. foreach (char c in str1)
  5. {
  6.     Console.WriteLine(c);
复制代码


在C#中,string str1 = new string(chars); 中要传入 chars 是因为 string 类的构造函数需要一个 char 数组作为参数来创建一个新的字符串。具体来说,这个构造函数会将 char 数组中的所有字符按顺序组合成一个新的字符串。

我们可以进一步解释这个过程:

提到,String.Create 方法在创建字符串时,会根据数组长度分配内存,并将数组中的所有字节复制到新分配的字符串中。这表明 string 类的构造函数确实需要一个 char 数组来初始化字符串。

和  也提到,要从原始字符数据中构造一个 string,需要使用构造函数,并且这个构造函数需要一个指向 char 数组的指针。这进一步证实了 string 类的构造函数需要 char 数组作为参数。

和  解释了 foreach 循环的用法,它用于遍历集合中的每个元素。虽然这里没有直接提到 string 构造函数,但它们说明了 foreach 循环是如何遍历数组的,这与 string 构造函数需要 char 数组作为参数的概念是一致的。

因此,string str1 = new string(chars); 中传入 chars 是因为 string 类的构造函数需要一个 char 数组来初始化一个新的字符串。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|平顶山市图灵科技 ( 豫ICP备2024088136号-1| 豫公网安备41040202000275号 )

GMT+8, 2025-5-22 21:46 , Processed in 0.044395 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表