Bop*_*pha 12 c# arrays string char
char character = 'c';
string str = null;
str = character.ToString();//this is ok
char[] arrayChar = { 'a', 'b', 'c', 'd' };
string str2 = null;
str2 = string.Copy(arrayChar.ToString());//this is not ok
str2 = arrayChar.ToString();//this is not ok.
Run Code Online (Sandbox Code Playgroud)
我正在尝试将char数组转换为字符串,但最后两次尝试不起作用.我找到的其他来源,他们必须创建新的字符串类型,但我不知道为什么.有人能给我一点解释,谢谢.
Ree*_*sey 27
您需要构造一个新字符串.
做arrayChar.ToString()呼叫的所述"的ToString"方法char[]的类型,其被未过载来构造字符串出的字符,而是构造一个字符串,它指定该类型是字符数组.这不会给你你想要的行为.
str2 = new string(arrayChar);但是,通过构造一个新字符串将为您提供所需的行为.
问题是,在C#中(与C++不同),字符串与字符数组不同.这是两种截然不同的类型(即使它们可以表示相同的数据).字符串可以枚举为字符(String implements IEnumerable<Char>),但就CLR而言,它不是与字符相同的类型.进行转换需要代码在两者之间进行转换 - 字符串构造函数提供此机制.
| 归档时间: |
|
| 查看次数: |
20790 次 |
| 最近记录: |