C# 奇数系统。格式异常
我正试图为我的单元测试构建一个json字符串,意外地,下面的代码返回了系统格式异常。错误消息表明它正试图解析日期,这对我来说很奇怪。我不是要求解析日期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 = "
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
错误。您是否在“故障排除提示”下查找?因为这些只是显示一般错误查看格式异常的提示