4

フォーマット文字列が有効かどうかを確認する簡単な方法はありますか? たとえば、以下は数値フォーマット文字列をテストするために使用するコードです。

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 の書式文字列についても同じテストを行います。

4

2 に答える 2

4

標準のフォーマット文字列を確認したいだけの場合は、フォーマット文字列がそのリストの一部であることを確認してください。

カスタム形式の文字列(「その他」または「リテラル文字列」ではない)を確認する場合は、正規表現を作成して確認できます。

それ以外は、フォーマット文字列は任意の文字列である可能性があるため、検証も適用されないと思います。

于 2011-11-02T00:49:31.843 に答える
1

FormatString がformattedNumber と等しい場合、それは false を返す別のケースである可能性があります。

于 2011-11-02T01:06:51.317 に答える