我正在编写一个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中的复合格式字符串的函数
答案 0 :(得分:0)
注意:这是来自@JeroenVannevel的comment,我只重新格式化以将其标记为答案。
我碰巧写了一些这样的东西: github.com/Vannevelj/VSDiagnostics/blob/develop/VSDiagnostics/ ......
它用于一些Roslyn分析器:github.com/Vannevelj/VSDiagnostics/tree/develop/VSDiagnostics/ ...
但不,没有内置函数可以验证某些东西是否是带占位符的字符串。我选择了Regex方法