In C# werden Zeichenfolgenliterale durch doppelte Anführungszeichen dargestellt. Escape-Sequenzen (z. B. t für Tab, n für Newline) können in diesen Literalen verwendet werden, um Sonderzeichen darzustellen.
Um eine normale Zeichenfolge in ihre maskierte Zeichenfolgenliteraldarstellung umzuwandeln, können Sie die folgende Methode in Betracht ziehen:
Mithilfe der Codegenerierungstechnologie können Sie CodeDomProvider verwenden, um die erforderlichen Zeichenfolgenliterale zu generieren:
<code class="language-csharp">private static string ToLiteral(string input) { using (var writer = new StringWriter()) { using (var provider = CodeDomProvider.CreateProvider("CSharp")) { provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null); return writer.ToString(); } } }</code>
Diese Methode erstellt eine literale Zeichenfolgendarstellung, indem sie die folgenden Schritte ausführt:
Ein neuerer Ansatz ist die Verwendung des NuGet-Pakets Microsoft.CodeAnalysis.CSharp von Roslyn:
<code class="language-csharp">private static string ToLiteral(string valueTextForCompiler) { return Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(valueTextForCompiler, false); }</code>
Diese Methode vereinfacht den Prozess, indem sie Roslyns SymbolDisplay verwendet, um eine maskierte Zeichenfolgenliteraldarstellung zu generieren.
Das obige ist der detaillierte Inhalt vonWie entkomme ich Strings für C#-String-Literale?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!