如何检查给定的String是否是复合格式String

时间:2016-04-13 12:18:40

标签: c# .net vb.net

我正在编写一个composite formatting的函数。这是vb.net,但我认为C#也是一样的。我想检查,如果message是复合格式化字符串,因为如果不是,我可以为其余参数创建不同的输出。

    public sub write(message as String, paramarray paramlist() as Object)
        if paramlist.Length = 0 then
            writeString(message)
        else
            if isCompositeFormatString(message) then
                writeString(String.Format(message, paramlist))
            else
                ' ... make different output for paramlist
            end if
        end if
    end sub

我认为有两种方法可以检查:

1)创建一个查找{...}字符串

的RegEx

2)尝试String.Format并抓住FormatException来处理此案例

问题是,是否已有一个识别.net中的复合格式字符串的函数

1 个答案:

答案 0 :(得分:0)

注意:这是来自@JeroenVannevel的comment,我只重新格式化以将其标记为答案。

我碰巧写了一些这样的东西: github.com/Vannevelj/VSDiagnostics/blob/develop/VSDiagnostics/ ......

它用于一些Roslyn分析器:github.com/Vannevelj/VSDiagnostics/tree/develop/VSDiagnostics/ ...

但不,没有内置函数可以验证某些东西是否是带占位符的字符串。我选择了Regex方法