Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 奇数系统。格式异常_C#_String.format - Fatal编程技术网

C# 奇数系统。格式异常

C# 奇数系统。格式异常,c#,string.format,C#,String.format,我正试图为我的单元测试构建一个json字符串,意外地,下面的代码返回了系统格式异常。错误消息表明它正试图解析日期,这对我来说很奇怪。我不是要求解析日期 class Program { static void Main(string[] args) { Console.WriteLine(GetJson()); Console.ReadKey(); } static string GetJson(string dateStr = "

我正试图为我的单元测试构建一个json字符串,意外地,下面的代码返回了系统格式异常。错误消息表明它正试图解析日期,这对我来说很奇怪。我不是要求解析日期

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(GetJson());
        Console.ReadKey();
    }

    static string GetJson(string dateStr = "", string lta = "5.25")
    {
        return String.Format("[{\"dateBooking\":\"{0}\",\"lta\":\"{1}\"}]", dateStr, lta);
    }
} 
它可以很容易地复制,但我添加了异常详细信息:

“在中发生类型为'System.FormatException'的未处理异常。” mscorlib.dll

其他信息:输入字符串的格式不正确。“


您需要用
{{
转义
{
,用
}
转义
}
,因为
String.Format
将搜索像
{0:000}
这样的参数,但会找到没有有效参数格式的
{“dateBooking…”
。这就是引发FormatException的原因

return String.Format("[{{\"dateBooking\":\"{0}\",\"lta\":\"{1}\"}}]", dateStr, lta);

添加异常详细信息科尔,它成功了,我将在6分钟内将其标记为答案。但是,我认为异常消息具有误导性。异常消息是
输入字符串的格式不正确。
而且由于您提供的格式字符串是第一个参数,因此需要以正确的方式格式化。我个人使用Resharper,它的格式不正确请告诉我以下内容:
格式项索引必须是一个以0开头的数字,不带任何前导或尾随空格
我建议安装Resharper(它不是免费的,但值得一试)当您经常在错误消息详细信息中使用C#时,它还会提到日期时间转换错误,这与此无关。我已经在使用ReSharper了,我只是错过了那个警告。错误本身没有提到任何
DateTime
错误。您是否在“故障排除提示”下查找?因为这些只是显示一般错误查看
格式异常的提示