Partage
  • Partager sur Facebook
  • Partager sur Twitter

Déclaration de variable en C#

Sujet résolu
    24 octobre 2019 à 14:05:47

    Bonjour,

    J'ai peut-être mal compris mais dans certain tutoriel pour pouvoir déclarer une variable il faut faire:

    <type> <nom> = <valeur>;

    Mais je vois dans d'autre qu'il faut rajouter private ou public avant le type je n'arrive pas à comprendre.

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2019 à 14:51:20

      Un guide qui explique plutôt bien: https://docs.microsoft.com/fr-fr/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers
      • Partager sur Facebook
      • Partager sur Twitter

      Un bon dev est un dev qui sait Googler

        24 octobre 2019 à 15:03:25

        En fait, private et public sont des modificateurs d'accès, donc la manière de déclarer une variable se fait comme cela :

        <modificateur d'accès> <classe/type> <nom> = <valeur>;

        Le modificateur d'accès, fonctionne exactement comme son nom le dit, il modifie l'accès à des variables ( Et aussi à des fonctions, classes etc ). Il y en a plusieurs :

        public : 

        La variable/fonction/classe peut être accédée par n'importe quoi. Elle peut être accédé par une fonction à l'intérieur de la classe, par une instance de la classe, et peut également être accédé par un fichier externe.

        Voici un exemple :

        namespace csharp
        {
            class Program
            {
                public string Name = "John Doe";
                public void PrintName()
                {
                    Console.WriteLine(Name);
                }
                static void Main(string[] args)
                {
                    Program Nom = new Program();
                    Console.WriteLine(Nom.Name);
        
                }
            }
        }

        Je peux accéder au Name à partir d'une fonction de la classe ( PrintName ), et tu peux voir que je peux également y accéder en créant une instance de la class ( Program Nom = new Program() ) 

        private :

        La variable/fonction ne peut être accédée qu'à l'intérieur de la classe, on ne peut donc pas créer d'instance avec. Avec le même exemple d'en haut :

        class Program
            {
                private string Name = "John Doe";
                public void PrintName()
                {
                    Console.WriteLine(Name);
                }
        }

        Si je tente de créer une instance de la classe Program, je serai capable d'utiliser la méthode PrintName, cependant, si j'écris "Nom.Name" j'aurai une erreur.

        static :

        On peut accéder à la propriété sans créer une instance de classe, donc si j'ai une classe comme cela :

        class Program
            {
                public static string Name = "John Doe";
                public void PrintName()
                {
                    Console.WriteLine(Name);
                }
        }

        Je pourrai accéder à la propriété Name comme ça "Program.Name" et non "Program Nom = new Program();" "Nom.Name".

        Il existe d'autres modificateurs d'accès, et on peut aussi les combiner, mais je vais te laisser faire la recherche toi même : 

        https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

        https://stackoverflow.com/questions/2521459/what-are-the-default-access-modifiers-in-c

        Bonne journée !

        -
        Edité par bergiLeZÉR0 24 octobre 2019 à 15:03:56

        • Partager sur Facebook
        • Partager sur Twitter

        "I believe in two things. Discipline and the Bible." The Shawshank Redemption

          24 octobre 2019 à 15:43:31

          Ça serait quand--même plus simple pour les apprenants qu'on arrête de dire "variable" à tord et à travers.

          "variable" c'est un fourre-tout qui fait des noeuds au cerveau pour rien.

          Il faut distinguer les champs (static ou pas) d'une classe et les variables locale à une méthode.

          Pour les champs (et les propriétés, qui sont une extension des champs), il est possible de spécifier un modificateur d'accès ( et je vous le conseil car la valeur par défaut de accessibilité d'un champ n'est pas très évidente (non, ce n'est ni public ni private)).

          Pour les variables locales à une méthode, un modificateur d'accès n'a aucun sens.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            30 octobre 2019 à 21:20:42

            Merci à tous pour vos réponses !
            • Partager sur Facebook
            • Partager sur Twitter

            Déclaration de variable en C#

            × 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