c# - number - string.format java




Wie setzen Sie{und} in ein Format string (4)

"{{" und "}}"

Diese Frage hat hier bereits eine Antwort:

Ich versuche, zur Laufzeit einen Code zu generieren, in den ich einiges einfüge, und der Benutzer darf den eigentlichen Arbeitscode eingeben. Mein Kesselplattencode sieht ungefähr so ​​aus:

using System;

public class ClassName
{
    public double TheFunction(double input)
    {
        // user entered code here
    }
}

Idealerweise verwende ich string.Format, um den Benutzercode einzufügen und einen eindeutigen Klassennamen zu erstellen, aber ich erhalte eine Ausnahme für die Formatzeichenfolge, sofern sie nicht so aussieht:

string formatString = @"
using System;

public class ClassName
{0}
    public double TheFunction(double input)
    {0}
        {2}
    {1}
{1}";

Dann rufe ich string.Format so:

string entireClass = string.Format(formatString, "{", "}", userInput);

Das ist in Ordnung und ich kann mit der Häßlichkeit der Verwendung von {0} und {1} in der Formatzeichenfolge anstelle meiner geschweiften Klammern umgehen, außer dass meine Benutzereingabe jetzt auch keine geschweiften Klammern verwenden kann. Gibt es eine Möglichkeit, die geschweiften Klammern in meiner Formatzeichenfolge zu entladen, oder eine gute Möglichkeit, die geschweiften Klammern im Benutzercode in {0} und {1} umzuwandeln?

BTW, ich weiß, dass diese Art von Sache ein Sicherheitsproblem ist, das darauf wartet, zu passieren, aber das ist eine Windows Forms-App, die für den internen Gebrauch auf Systemen, die nicht mit dem Netz verbunden sind, so ist das Risiko in dieser Situation akzeptabel.



Was ich denke, dass du willst, ist das ...

string formatString = @"
using System;

public class ClassName
{{
    public double TheFunction(double input)
    {{
        {0}
    }}
}}";

string entireClass = string.Format(formatString, userInput);

string.Format("{{ {0} }}", "Hello, World"); die geschweiften Klammern: string.Format("{{ {0} }}", "Hello, World"); würde { Hello, World }





formatting