无法将类型'string'隐式转换为'char []'

时间:2012-09-14 08:33:21

标签: c# c#-4.0

我有以下代码但是给出错误“无法将类型'字符串'隐式转换为'char []'”

char[] hTempFile = new char[300 + 1];
hTempFile ="";

5 个答案:

答案 0 :(得分:5)

char[]string不同。如果你打算成为一个空数组,那么:

hTempFile = new char[0];

或者简单地说(如果你添加一些空检查):

hTempFile = null;

.ToCharArray()上还有string,但这似乎有点矫枉过正。

坦率地说,对于文件名,听起来就像实际在这里使用string一样。

答案 1 :(得分:2)

它看起来像是一个C风格的字符串初始化,在C#中最好避免使用字符串的char数组而是使用字符串类。

string hTempFile = string.Empty;

答案 2 :(得分:0)

您可以使用String.ToCharArray()从字符串中获取char数组....如果字符串为空,就像在给定示例中一样,返回的数组为空且长度为零....

hTempFile = "".ToCharArray();

答案 3 :(得分:0)

你想要达到什么目的?你已经将hTempFile定义为char []类型。

您无法为hTempFile指定字符串值。

答案 4 :(得分:0)

看起来您想将hTempFile设置为空字符串 - 或者更具体地说,是将空字符串的C字符串表示形式设置为空字符串。如果是这种情况,您需要做的就是

hTempFile[0] = 0;

由于C字符串以空值终止,因此在数组的第一个字符中放置一个空字节会有效地清空该字符串。