WinRT - 为什么这个String(Char数组)不能被往返?

时间:2014-11-03 11:44:26

标签: c# unicode windows-runtime

注意:这是Windows RT!我感到非常惊讶,我在LinqPad中尝试过这种方法并不好用。

查看VS立即窗口的输出:

string str = "503";
"503"

var charArray = str.ToCharArray();
{char[3]}
    [0]: 53 '5'
    [1]: 48 '0'
    [2]: 51 '3'

string str2 = new String(charArray);
'new String(charArray)' threw an exception of type 'System.ArgumentException'

new String(charArray);
'new String(charArray)' threw an exception of type 'System.ArgumentException'
    base: {"Value does not fall within the expected range."}
    m_paramName: null
    Message: "Value does not fall within the expected range."
    ParamName: null

这里发生了什么?

由于

2 个答案:

答案 0 :(得分:3)

这确实是VS表达式求值程序中的一个错误(由立即窗口使用)。 Visual Studio 2015已修复此问题(您可以尝试最新的CTP,包括修复程序here)。

答案 1 :(得分:2)

感谢Dirk指出它实际上在Windows Store应用程序本身编码时执行。我把它归类为VS IDE中的一个错误。

https://connect.microsoft.com/VisualStudio/feedback/details/1019365