Bonsoir à tous,
Je me lance dans le C# et là je me retrouve face à un comportement un peu bizarre généré par le compilateur (je suis sous Visual Studio 2008). J'ai le code suivant (ce n'est évidemment qu'un extrait) :
Tel quel, j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 namespace projetSocket { public partial class frmPrinc : Form { private struct socketMsgFromWindows { public char header; public socketMsgParamsWindows datas; } private const char BATCH_CONFIG = 'B'; private const char FIELD_SEPARATOR = '?'; ..... private void button2_Click(object sender, EventArgs e) { MessageBox.Show(BATCH_CONFIG + FIELD_SEPARATOR); }
Error 2 Argument '1': cannot convert from 'int' to 'string' D:\Documents and Settings\Stephane\Mes documents\INSA\4IF\Socket\projetSocket\poste_distant\code\Windows\projetSocket\projetSocket\frmPrinc.cs 203 29 projetSocket
Si je corrige comme suit ça compile :
Bon ... qu'il me force à mettre ToString .... pourquoi pas ...... mais ce qui me choque surtout c'est que BATCH_CONFIG et FIELD_SEPARATOR ont la même définition et que pour l'un je dois préciser le ToString mais pas pour l'autre ... Bref je suis dans une incompréhension totale ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void button2_Click(object sender, EventArgs e) { MessageBox.Show(BATCH_CONFIG.ToString() + FIELD_SEPARATOR); }
Moi je voudrais simplement afficher mon caractère B déclaré en const char ... (y a-t-il une autre solution que d'utiliser le ToString() ?)
Et puis pourquoi pour pour BATCH_CONFIG je dois préciser le ToString() mais pas pour l'autre ?
Merci de m'avoir lu et merci par avance pour votre aide
[EDIT] : je viens de faire un autre test. En mettant MessageBox.Show(FIELD_SEPARATOR) => fonctionne pas
Donc pourquoi dans MessageBox.Show(BATCH_CONFIG.ToString() + FIELD_SEPARATOR) fonctionne ?
Partager