0

我想做以下事情,但我明白了

错误:从 Char[] 类型到字符串的隐式转换是不可能的。

string Pattern2 = (Convert.ToDateTime(currMail.CreationTime).ToString(" dd-MMM-yyyy HH-mm")).ToArray();

有没有人知道如何处理这个问题?

4

5 回答 5

5

删除.ToArray()

string Pattern2 = Convert.ToDateTime(currMail.CreationTime).ToString("dd-MMM-yyyy HH-mm");
于 2013-05-18T12:20:00.833 回答
4

正如其他答案所指出的那样,您的呼叫ToArray不仅是不必要的,而且在这种情况下是有害的。你手头已经有一个字符串,你需要一个字符串,所以不要把字符串转换成char数组;只需使用字符串。

但是,为了您将来的参考,可以将 char 数组转换为字符串,而不是通过隐式或显式转换。其语法是:

char[] characters = whatever;
string str = new String(characters);

最后,文档在这里:

http://msdn.microsoft.com/en-us/library/vstudio/s1wwdcbf.aspx

初学者应熟悉本文档;里面有很多好东西。

于 2013-05-18T14:39:45.253 回答
1

您将 char[] 分配给字符串,这需要将 char[] 转换为字符串。正如错误所说,这不是隐式完成的,即在幕后。这样做是为了防止愚蠢的错误。

您应该进行显式转换(从数组创建一个字符串,然后分配它)。

在您的情况下,您有一个字符串并将其转换为数组,然后再将其分配给 Pattern2。只是不要将字符串转换为数组。

string Pattern2 = (Convert.ToDateTime(currMail.CreationTime).ToString(" dd-MMM-yyyy HH-mm"));
于 2013-05-18T12:24:30.640 回答
1

看起来你根本不需要使用.ToArray()方法。您已经使用.ToString()分配给Pattern2变量的方法。

只需用作;

string Pattern2 = Convert.ToDateTime(currMail.CreationTime).ToString("dd-MMM-yyyy HH-mm");
于 2013-05-18T12:21:27.360 回答
1
 string Pattern2 = Convert.ToDateTime(currMail.CreationTime).ToString(" dd-MMM-yyyy HH-mm");
于 2013-05-18T12:21:51.883 回答