Je veux que la fonction PrintMaanden () s'imprime tous les mois avec sa chaîne, par exemple "1 => Janvier" Au lieu de cela, la fonction imprime uniquement le mois lui-même, par ex. "Janvier" .
Qu'est-ce que j'ai fait de mal ici? Notez que pour ce code, je dois utiliser l'autre fonction (qui fonctionne correctement telle quelle) PrintMaand () dans la fonction PrintMaanden () .
< pré> XXX4 Réponses :
La logique pour imprimer à la fois l'index / numéro du mois ainsi que le nom ne se trouve pas dans la fonction Print Maanden. C'est dans la fonction Démarrer.
Peut-être que c'est ce que vous cherchez:
void PrintMaand(Maanden maand) { Console.Write(maand + "\n"); } void PrintMaanden() { for (int i = 1; i < 13; i++) { Console.Write($"{i} => "); PrintMaand((Maanden) i); } }
J'ai utilisé Write
au lieu de WriteLine
parce que de cette façon, vous pouvez écrire sur le même ligne en utilisant votre méthode PrintMaand ()
. Et à l'intérieur du PrintMaand (), vous avez le \ n
pour la ligne suivante. PrintMaanden formate les informations supplémentaires dont vous avez besoin pour votre nouvelle impression.
C'est peut-être ce que vous recherchez:
void PrintMaand(Maanden maand) { Console.WriteLine((int) maand + " => " + maand); } void PrintMaanden() { for (int i = 1; i < 13; i++) { PrintMaand((Maanden) i); } }
C'est juste une question de formatage du résultat.
void Start() { //New object month of type Month (class Month) Maanden maand; maand = new Maanden(); //Calling the methods PrintMaanden(); VraagMaand("Typ het nummer van de maand: "); Console.ReadKey(); } void PrintMaand(Maanden maand) { Console.WriteLine(maand); } void PrintMaanden() { int teller = 0; for (Maanden i = Maanden.Januari; i <= Maanden.December; i++) { teller = teller + 1; Console.WriteLine(string.Format("{0,2}. {1}", teller, i)); } } Maanden VraagMaand(string question) { //Read number of the month Console.Write(question); string month = Console.ReadLine(); Maanden monthNumber = (Maanden)int.Parse(month); Console.Write("{0} => ", month); PrintMaand(monthNumber); return monthNumber; } } }I figured it out, this was what I was looking for.
J'ai une autre classe appelée Maanden.cs, qui est un fichier enum. Il contient simplement ceci: public enum Maanden {Januari = 1, Februari, Maart, April, Mei, Juni, Juli, Augustus, September, Oktober, November, December}}
C'est peut-être ce que vous cherchez? stackoverflow.com/a/899589/758848
Non, ça ne l'est pas. J'ai juste besoin de savoir pourquoi il imprime le mois lui-même plutôt que la chaîne que j'ai définie dans le commutateur.
Parce que votre commutateur n'est pas appelé chez PrintMaanden mais après. La méthode PrintMaanden imprime simplement la WriteLine (maand).
Je pense que vous devriez déplacer l'ensemble du boîtier de commutation vers la fonction PrintMaand (), et appeler PrintMaand () depuis le début