C# TimeSpan自定义格式引发异常?

C# TimeSpan自定义格式引发异常?,c#,.net,string-formatting,C#,.net,String Formatting,我知道它显然失败了,因为我在这里遗漏了一些东西,但我无法找出这行代码的错误: this.Duration.ToString("{0:%m} minutes {0:%s} seconds") 这将引发格式异常 希望有人能给我指出正确的方向 请使用 string.Format("{0:%m} minutes {0:%s} seconds", this.Duration) 请使用 string.Format("{0:%m} minutes {0:%s} seconds", this.Duratio

我知道它显然失败了,因为我在这里遗漏了一些东西,但我无法找出这行代码的错误:

this.Duration.ToString("{0:%m} minutes {0:%s} seconds")
这将引发
格式异常

希望有人能给我指出正确的方向

请使用

string.Format("{0:%m} minutes {0:%s} seconds", this.Duration)
请使用

string.Format("{0:%m} minutes {0:%s} seconds", this.Duration)

除了使用字符串(“…”)

之外,您还需要在所有非格式字符周围使用单引号:

Duration.ToString("mm' minutes 'ss' seconds'");

可以将非格式字符括在单引号中,也可以使用反斜杠对每个字符进行转义。有关更多信息,请参见标题“其他字符”下的

对于非格式字符的所有内容,都需要使用单引号:

Duration.ToString("mm' minutes 'ss' seconds'");

可以将非格式字符括在单引号中,也可以使用反斜杠对每个字符进行转义。有关更多信息,请参见标题“其他字符”下的

如果要使用
ToString
,则不必传递要格式化的值的索引(此处为
%s
,而不是
{0:%s}

我建议在这里使用
string.Format
。(带有索引
{0:[…]}


如果要使用
ToString
,则不必传递要格式化的值的索引(此处为
%s
,而不是
{0:%s}

我建议在这里使用
string.Format
。(带有索引
{0:[…]}


有帮助吗?类似的问题?有帮助吗?类似的问题@DanielHilgarth,奇怪的是,这实际上修复了它,并使它构建了我所期望的字符串。嗯,为什么不呢?格式(“{0:%m}分钟{0:%s}秒”,this.Duration)将给出正确的result@Warr当前位置你的答案听起来像是一条一般性的建议。如果你把你的答案充实到可以编译的程度,我将取消我的否决票。(目前,我的投票被锁定,因为它发生在5分钟前)@DanielHilgarth,奇怪的是,这实际上修复了它,并导致它构建了我所期望的字符串。嗯,为什么不呢?格式(“{0:%m}分钟{0:%s}秒”,this.Duration)将给出正确的result@Warr当前位置你的答案听起来像是一条一般性的建议。如果你把你的答案充实到可以编译的程度,我将取消我的否决票。(目前,我的投票被锁定,因为它发生在5分钟前)@Kaf:嗯,我看到了那个问题和答案。在我看来,他们当时都有一些问题,所以我投了反对票。没有什么不寻常的事情发生。@Kaf,如果所有的答案都相对相同,并且有人认为这肯定是错误的方法,这也不奇怪。不要把它当成个人问题。@MichaelPerrenoud:谢谢你的好评论,但实际上我的工作方式不同:我快速阅读了问题,给出了我答案的第一个版本。重读问题,更新答案。如果我不确定代码是否能正常工作,我现在将最终在LINQPad中检查它。@Kaf:如果答案看起来不完整或者错误似乎是打字错误或类似的东西,我不会投反对票。如果答案完全错误或方向错误,我会投反对票。你的回答是后者。将TimeSpan转换为字符串完全是错误的方法。你的任何编辑都不太可能修正这一点,因此否决票是不可能的。@Kaf,我一直很冷淡,只是一直在讨论。我认为问题在于,有了文字,你就感觉不到语调了。@Kaf:嗯,我看到了那个问题和答案。在我看来,他们当时都有一些问题,所以我投了反对票。没有什么不寻常的事情发生。@Kaf,如果所有的答案都相对相同,并且有人认为这肯定是错误的方法,这也不奇怪。不要把它当成个人问题。@MichaelPerrenoud:谢谢你的好评论,但实际上我的工作方式不同:我快速阅读了问题,给出了我答案的第一个版本。重读问题,更新答案。如果我不确定代码是否能正常工作,我现在将最终在LINQPad中检查它。@Kaf:如果答案看起来不完整或者错误似乎是打字错误或类似的东西,我不会投反对票。如果答案完全错误或方向错误,我会投反对票。你的回答是后者。将TimeSpan转换为字符串完全是错误的方法。你的任何编辑都不太可能修正这一点,因此否决票是不可能的。@Kaf,我一直很冷淡,只是一直在讨论。我认为问题在于,有了文字,你感觉不到语调。