2013-05-18 52 views
0

我想做到以下几点,但我得到这个从类型隐式转换的char []字符串是不可能

Error: an Implicit conversion from type Char[] to string is not possible.

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

没有任何人有关于如何处理这个任何想法?

+0

删除'.ToArray()'调用。它应该做什么?实际上,你正在调用一个'.ToString()'方法,并且你想分配给一个'string'。我无法想象如何额外的'.ToArray()'看起来“确定”给任何人。 – Jon

+0

嗯,也许到初学者:) 你是什么意思与“ToString(),你想分配给一个字符串” 我应该使它与大S的字符串? – gbbb

+0

@gbbb:'string'和'System.String'是别名;没有区别。 –

回答

5

删除.ToArray()

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

老兄,你最好的,谢谢 – gbbb

+0

你有什么想法为什么@Soner Gonul告诉我,我做错了什么,因为我将ToString()分配给一个字符串? – gbbb

+0

@gbb - 他建议你像我一样去掉'.ToArray'。简而言之,您将'CreationTime'转换为'DateTime'对象,然后将其解析为'string' - 这很好,因为'Pattern2'的类型是'string',所以不需要调用'.ToArray( )'。 –

1

看起来你并不需要使用.ToArray()方法在所有。您已使用.ToString()方法分配您的Pattern2变量。

只是用作;

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

分配一个char []为一个字符串,这需要从一个字符串炭[]转换。正如错误所说,这不是隐含地完成的,即在幕后。这样做是为了防止愚蠢的错误。

您需要进行显式转换(从数组中创建一个字符串,然后赋值)。

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

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

至于其他的答案指出,你的电话ToArray不仅是不必要的,它是在这种情况下,主动对人体有害。你已经有了一个字符串,你需要一个字符串,所以不要将字符串转换为char数组;只需使用字符串。

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

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

最后,文件是在这里:

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

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

相关问题