为什么这会抛出一个 System.FormatException

本文关键字:一个 System FormatException 为什么 | 更新日期: 2023-09-27 18:33:55

这是string.Format上的错误还是什么?

// Act
string l = "This is an UnitTest embedded resource.";
string r = "Please do not remove or change. Sincerely yours, {0}".FormatWith(model.Username);
string expected = "['r'n't{0}'r'n'r'n'r'n]'r'n{'r'n't'r'n't{1}'r'n'r'n}".FormatWith(l, r);

FormatWith方法只是句法糖的扩展。

public static string FormatWith(this string text, params object[] args)
{
    return string.Format(text, args);
}

为什么这会抛出一个 System.FormatException

您的问题是尝试在格式字符串中使用{}。它们需要被转义,否则它们将被视为格式变量。

将最后一行更改为:

string expected = "['r'n't{0}'r'n'r'n'r'n]'r'n{{'r'n't'r'n't{1}'r'n'r'n}}".FormatWith(l, r);
相关文章: