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 :
Ç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.
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
× 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.
Un bon dev est un dev qui sait Googler
"I believe in two things. Discipline and the Bible." The Shawshank Redemption