.net - mostrar - console.writeline c# ejemplos
Redirigir la salida.NET StreamWriter a una variable String (5)
Me gustaría saber si es posible redirigir la salida de StreamWriter a una variable
Algo como
String^ myString;
StreamWriter sw = gcnew StreamWriter([somehow specify myString])
sw->WriteLine("Foo");
entonces myString contendrá Foo. La razón por la que me gustaría hacer esto es reutilizar una función compleja. Probablemente debería refactorizarlo en una función de devolución de cadenas, pero aún sería un buen truco saber
Debería poder hacer lo que necesita con un flujo de memoria.
MemoryStream mem = new MemoryStream();
StreamWriter sw = new StreamWriter(mem);
sw.WriteLine("Foo");
// then later you should be able to get your string.
// this is in c# but I am certain you can do something of the sort in C++
String result = System.Text.Encoding.UTF8.GetString(mem.ToArray(), 0, (int) mem.Length);
Puede hacer esto con un StringWriter escribiendo el valor directamente en un objeto generador de cadenas
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
// now, the StringWriter instance ''sw'' will write to ''sb''
Refactorice el método para devolver la cadena como lo mencionó que podría. Si lo piratea de la forma en que lo intenta, aunque sea interesante desde el punto de vista académico, enturbierá el código y lo hará muy difícil de mantener para cualquiera que lo siga.
StreamWriter y StringWriter extienden TextWriter, ¿quizás podrías refactorizar tu método que usa StreamWriter para usar TextWriter en su lugar para que pueda escribir en una secuencia o una secuencia?
Prueba este código =]
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
string s = sb.ToString(); <-- Now it will be a string.