Partage
  • Partager sur Facebook
  • Partager sur Twitter

C#10 Instructions de niveau supérieur

Instructions de niveau supérieur problème

Sujet résolu
    7 mars 2022 à 10:06:08

    Salut, je suis  entrain de suivre un cours sur le C#, alors j'ai VS 2022 installer sur ma machine. Et j'ai le .NET6 installer dans mon ordinateur. J'ai une application console que j'ai créer. Premier défit (Bouum Pas de MAIN method). J'ai lit la documentation en rapport avec ça, j'ai trouve que c'est génial. Mais mon souci est la suivant : Voici mon code

    public record Pays(string Nom, decimal Superficie);
    public record Ville(string Nom, int Population, Pays Pays);
    
    List<Pays> listePays = new List<Pays>(){
                    new Pays("Albanie",28748m),
                    new Pays("Allemagne",357578m),
                    new Pays("Andorre",468m),
                    new Pays("Armenie",29743m)
                };

    Avec ce Code, j'ai un message du genre 

    Les instructions de niveau supérieur doivent précéder les déclarations d'espace de noms et de type

    J'ai ajouté le using

    using System;
    using System.Collections.Generic;

    Mais le message s'affiche toujours, quelqu'un peux m'aider?. Merci d'avance





    • Partager sur Facebook
    • Partager sur Twitter
      7 mars 2022 à 19:17:00

      Heu, En C#, comme en Java, et contrairement à cette cochonnerie de C, tout code doit être inclus dans une classe.

      Où qu'elle est la classe ?

      Faudrait revoir la base de la base. :-°

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        8 mars 2022 à 11:29:23

        Dans la notation simplifiée de .NET 6 Core (C# 10.0) pour application Console; pas forcément besoin. (de même que certains using sont implicitement faits) https://docs.microsoft.com/fr-fr/dotnet/core/tutorials/top-level-templates 
        Ce qui gêne ici ce sont les déclarations de record (qui sont une définition de type); donc, comme l'indique le message d'erreurs, il faut les mettre après le code. Le code suivant fonctionne

        Console.WriteLine("Hello, World!");
        List<Pays> listePays = new List<Pays>(){
                        new Pays("Albanie",28748m),
                        new Pays("Allemagne",357578m),
                        new Pays("Andorre",468m),
                        new Pays("Armenie",29743m)
                    };
        foreach (var p in listePays)
        {
            Console.WriteLine(p);
        }
        //autre code...
        
        
        public record Pays(string Nom, decimal Superficie);
        public record Ville(string Nom, int Population, Pays Pays);



        • Partager sur Facebook
        • Partager sur Twitter
          8 mars 2022 à 17:05:34

          bacelar a écrit:

          Heu, En C#, comme en Java, et contrairement à cette cochonnerie de C, tout code doit être inclus dans une classe.

          Où qu'elle est la classe ?

          Faudrait revoir la base de la base. :-°

          Mon projet est créer avec .NET6, et je suis dans la classe Programme, c'est ça l'affichage par défaut, quand on créer une application, en utilisant le .NET6.
          Mon problème est que quand le compilateur parle des instructions de niveau supérieur. J'ai la possibilité d'utiliser l'ancienne méthode avec la Classe Programme et la méthode Main et avec cette méthode pas de problème, cela fonctionne, mon problème est que si j'utilise la nouvelle méthode (pas de classe main), avec les codes que je viens d'envoyer j'ai ce message.
          • Partager sur Facebook
          • Partager sur Twitter
            8 mars 2022 à 18:33:53

            Bin bin, j'ai ouvert ma grande-gueule encore trop vite.

            J'ai pas encore potassé le .NET6 :-°

            La réponse de @umfred me semble exhaustive et argumenté.

            Bon bin, j'ai de la lecture. :honte:

            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

            C#10 Instructions de niveau supérieur

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown