interpolacion entender ejemplos cadenas c# .net string formatting

entender - string c# ejemplos



¿Cómo pones{y} en una cadena de formato (5)

"{{" y "}}"

Esta pregunta ya tiene una respuesta aquí:

Intento generar algún código en el tiempo de ejecución donde coloco algunos elementos de la placa de la caldera y el usuario puede ingresar el código de trabajo real. El código de mi placa de caldera se ve así:

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

Idealmente, creo que quiero usar string.Format para insertar el código de usuario y crear un nombre de clase único, pero obtengo una excepción en la cadena de formato a menos que se vea así:

string formatString = @" using System; public class ClassName {0} public double TheFunction(double input) {0} {2} {1} {1}";

Luego llamo a string.Format como este:

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

Esto está bien y puedo lidiar con la fealdad de usar {0} y {1} en la cadena de formato en lugar de mis llaves, excepto que ahora mi entrada de usuario tampoco puede usar llaves. ¿Hay alguna manera de escapar de las llaves en mi cadena de formato, o una buena manera de convertir las llaves en el código de usuario en {0} ''s y {1}'' s?

Por cierto, sé que este tipo de cosas es un problema de seguridad que está por ocurrir, pero esta es una aplicación de Windows Forms que es para uso interno en sistemas que no están conectados a la red, por lo que el riesgo es aceptable en esta situación.


Doble las llaves: string.Format("{{ {0} }}", "Hello, World"); produciría { Hello, World }



Lo que creo que quieres es esto ...

string formatString = @" using System; public class ClassName {{ public double TheFunction(double input) {{ {0} }} }}"; string entireClass = string.Format(formatString, userInput);


Sea extremadamente cauteloso en cuanto a quién tiene acceso a la aplicación. Una mejor solución podría ser crear un analizador simple que solo espera unos pocos comandos limitados.