检查 FormatString 是否有效的简单方法?

pal*_*gap 5 c# formatting format-string

有没有一种简单的方法来检查格式字符串是否有效?例如,以下是我们用来测试数字格式字符串的代码;

public static bool IsValidFormatStringNumber(string FormatString)
{
    try
    {
        const decimal number = 0.056m;
        var formattedNumber = number.ToString(FormatString);
        return formattedNumber.Length > 0;
    }
    catch
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们试图捕获异常或确定结果字符串是否没有长度。然而,此测试失败,因为“hsibbur”(任何垃圾)的格式字符串会产生一个具有长度的“hsaibbur”字符串。

我们想对百分比和日期格式字符串进行相同的测试。

Jor*_*dão 5

如果您只想检查标准格式字符串,只需检查您的格式字符串是否包含在该列表中即可。

如果您想检查自定义格式字符串(不是“其他”或“文字字符串”),您可以制作一个正则表达式来执行此操作。

除此之外,由于格式字符串可以是任意字符串,我认为验证甚至不适用