0
votes

Pourquoi la fonction PrintMaanden () n'imprimera-t-elle que le mois lui-même, plutôt que la chaîne que j'ai donnée chaque mois?

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é> XXX


5 commentaires

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


4 Réponses :


1
votes

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.


0 commentaires

1
votes

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.


0 commentaires

1
votes

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.


0 commentaires

0
votes
    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.

0 commentaires