2011-08-20 4 views
5

Ho cercato ma non so se sto usando la verbosità corretta da cercare. Sto scrivendo un programma in C# per la mia classe ma ho problemi con la finestra dei messaggi.C# Message Box, utilizzo variabile

Sto tentando di fare in modo che la finestra di messaggio mostri un messaggio e legga una variabile allo stesso tempo. Non ho problemi a farlo nelle applicazioni della console ma non riesco a capirlo per il lato Windows.

Finora ho:

MessageBox.Show("You are right, it only took you {0} guesses!!!", "Results", MessageBoxButtons.OK); 

che funziona bene. Howerver Sto cercando di avere il {0} come risultato della variabile numGuesses. Sono sicuro che questo è semplice e lo sto semplicemente trascurando nel libro o qualcosa del genere, o ho la sintassi errata in qualche posto.

+0

'MessageBox.Show (String.Format (" Hai ragione, ci sono voluti solo {0} tentativi !!! ", numGuesses)," Risultati ", MessageBoxButtons.OK);' –

risposta

1

Che dire String.Format()?

MessageBox.Show(String.Format("You are right, it only took you {0} guesses!!!", numGuesses), "Results", MessageBoxButtons.OK); 
1

String.Format è ciò che si vuole:

string message = string.Format("You are right, it only took you {0} guesses!!!",numGuesses) 

MessageBox.Show(message, "Results", MessageBoxButtons.OK); 
1
MessageBox.Show(
        string.Format(
           "You are right, it only took you {0} guesses!!!", 
           Results 
           ), 
        MessageBoxButtons.OK 
       ); 
3

È possibile utilizzare String.Format o semplice concatenazione di stringhe.

MessageBox.Show(String.Format("You are right, it only took you {0} guesses!!!", myVariable), "Results", MessageBoxButtons.OK); 

http://msdn.microsoft.com/en-us/library/system.string.format(v=VS.100).aspx

concatenazione:

MessageBox.Show("You are right, it only took you " + myVariable + " guesses!!!", "Results", MessageBoxButtons.OK); 

Entrambi i risultati sono equivalenti, ma si può preferire String.Format se si dispone di più variabili nella stessa stringa.

+0

Non direi che sono equivalenti. La chiamata al formato utilizza stringbuilder mentre il concat crea stringhe (potenzialmente più lente). –

+0

@Anthony Sottile: corretto. Avrei dovuto dire che i risultati sono equivalenti. –