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

时间:2011-11-02 00:42:43

标签: 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;
    }
}

我们正在尝试捕获异常或确定结果字符串是否没有长度。然而,此测试失败,因为格式字符串“hsibbur”(任何垃圾)导致字符串“hsaibbur”,其长度为。

我们希望对Percent和Date格式字符串执行相同的测试。

2 个答案:

答案 0 :(得分:2)

如果您只想查看standard format strings,请检查您的格式字符串是否属于该列表。

如果要检查custom format strings(不是“其他”或“文字字符串”),您可以制作正则表达式来执行此操作。

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

答案 1 :(得分:1)

如果FormatString等于formattedNumber,则可能是返回false的另一种情况。