2017-08-18 11 views
0

Je veux un code qui prend le texte qui a été écrit sur la console et le mettre sur une variable de chaîne, plz. Quelque chose comme ceci:C# convertir console.writeline en une chaîne

string s = Console.WriteLine(Invoke(o, null)); 

Je veux avec la console parce que si je l'invoquons sans elle, je ne peux pas obtenir le texte de celle-ci.

J'espère que vous le comprenez.

+5

'Console.ReadLine()'? – pwas

+1

Créer une fonction wrapper pour 'Console.WriteLine' où vous allez enregistrer tout le texte donné avant de l'écrire sur la console. – Fabio

Répondre

0

Je suis ce que je veux

using (StringWriter stringWriter = new StringWriter()) 
     { 
      Console.SetOut(stringWriter); 
      Console.Write(mi.Invoke(o, null)); 
      string allConsoleOutput = stringWriter.ToString(); 

      MessageBox.Show(allConsoleOutput, "Output"); 
     } 

merci pour tout le monde!

0

Voir la documentation de Console.WriteLine(), qui écrit les données spécifiées, suivies de la terminaison de ligne en cours, dans le flux de sortie standard. ne retourne rien à assigner à une variable, il est le type de retour est vide

0

Si vous voulez imprimer du texte:

Console.WriteLine("Enter a name"); 

Si vous voulez saisir le texte:

string name = Console.ReadLine(); 

Try This Way .

1

Vous ne pouvez pas le faire directement. Je pense que vous pouvez en quelque sorte le faire en obtenant l'objet fenêtre de la console ou quelque chose comme ça, mais ce n'est vraiment pas la peine de le faire quand vous voulez juste la sortie de Console.WriteLine.

Il ya beaucoup de surcharges de Console.WriteLine, mais à la fin toutes les surcharges vont convertir le paramètre en une chaîne, en utilisant ToString. Ainsi, pour mettre la sortie de Console.WriteLine dans une variable de chaîne, appelez simplement ToString sur l'argument.

string s = Invoke(o, null).ToString(); 

Que faire si vous voulez à la fois l'impression, et magasin la sortie? Vous pouvez le faire comme ceci:

string s = Invoke(o, null).ToString(); 
Console.WriteLine(s); 
+0

Ce que je suis vraiment que ma riche zone de texte obtiendra cette chaîne. si je code richtextbox1.Text = Invoke (o, null) .ToString(); ça ne marche pas – MKBoy