It reminds me of that old c nemesis, scanf and its ilk.  Even printf could
get confused at times if you fed it the wrong parameters.



On Thu, Feb 3, 2011 at 4:59 PM, David Kean <[email protected]> wrote:

>  You don’t have to escape arguments, for example, below shouldn’t crash on
> any version of .NET .
>
>
>
> We you perhaps instead passing user input as the format string instead?
> That you will have to escape.
>
>
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Greg Keogh
> *Sent:* Wednesday, February 02, 2011 9:42 PM
> *To:* 'ozDotNet'
> *Subject:* string.Format and curly braces
>
>
>
> Back to coding ... I diagnosed an app crash today caused by an argument to
> string.Format having curly braces inside it. I was doing something like 
> string.Format("Report
> title: {0}", title) where title was the string "{Intention}" and I'm told
> this is a perfectly acceptable title.
>
>
>
> We all know that you have to escape braces by doubling them in the
> arguments, but at what point in an app do you guard against this crash?
> Today it was way up in the UI, several months ago I had the same crash way
> down in a server logging method. The moderate sized app I'm working on today
> has 366 string.Format calls scattered all through it at different levels,
> some in a Silverlight app and some on the server side. How on earth do you
> globally guard all these calls without making a coding mess? I haven't found
> an obvious elegant solution yet. Has anyone else considered this problem?
>
>
>
> Sure I could wrap string.Format calls in an another function or create a
> string extension method that doubles braces in the arguments, but it seems
> clumsy.
>
>
>
> Greg
>



-- 
Meski

"Going to Starbucks for coffee is like going to prison for sex. Sure, you'll
get it, but it's going to be rough" - Adam Hills

Reply via email to