Le Langage C# : Niveaux d’accessibilité des classes, fonctions membres et propriétés (12)

0
Le Langage C#

1. Accessibilité des classes

Une classe peut avoir l’un des niveaux d’accessibilité suivants :

  • Public : pas de restriction d’accès,
  • Internal : accès limité aux classes du même assembly (par défaut).

Les classes imbriquées peuvent également avoir l’un des niveaux d’accessibilité suivants :

  • private: accès limité à la classe « englobant »
  • protected: accès limité à la classe englobant et aux classes dérivées
  • protected internal: accès limité aux classes de l’assembly et aux classes dérivées qui sont dans un autre assembly.

Vous ne pouvez spécifier qu’un seul modificateur d’accès pour un membre ou un type, sauf si vous utilisez les combinaisons protected internal ou private protected.

Exemple

class globale
{
protected class Point
   {
      public int x; 
      public int y;
   }
class Program
{
static void Main(string[] args)
  {
Point p1 = new Point();
p1.x = 12;
p1.y = 13;
Console.WriteLine("x = {0}, y = {1}", p1.x, p1.y);
   }
 }
}

2. Variables membres (champs)

Une variable membre est caractérisée par :

  • Un niveau d’accessibilité
  • Un type
  • Une valeur par défaut (optionnelle)

Une variable peut être déclarée « static ». Elle est alors partagée entre les différentes instances de la classe.

public static string nomMarque;

Une variable peut être déc<larée en lecture seule en utilisant le mot-clé readonly.

readonly double taux_tva = 15;

Une variable peut être déclarée constante, sa valeur ne peut changer.

Exemple

const double prix_unitaire_unique =;

3. Fonctions membres et méthodes

Les fonctions membres (méthodes) sont déclarées et implémentées au même endroit. Elles sont caractérisées par :

  • Un niveau d’accessibilité,
  • Un type de retour (éventuellement void) et
  • Une liste de paramètres.
[accès] type_retour nom_méthode ( type argument, ... )
{
    instructions
}

Exemple

public int MaMethode() {}

L’accessibilité est private par défaut. Une méthode peut être déclarée « static ». On l’appelle alors via le nom de la classe et non pas via une instance.

Par défaut, les paramètres sont passés par valeur. Il existe cependant un autre type de passage de paramètres via ref.

Passage par valeur

Il s’agit d’un paramètre servant à transmettre une information à la méthode appelée. Si la méthode modifie sa valeur, la modification est locale à la fonction uniquement.

Passage par référence

Le passage de paramètres par référence permet de modifier les valeurs des variables de manière persistante. Pour passer un paramètre par référence, on déclare le paramètre avec le mot-clé ref.

4. Les propriétés

Les propriétés sont un mécanisme pour exposer des données. De l’extérieur, cela ressemble à une variable publique. Elles permettent de cacher les détails d’implémentation et d’ajouter un traitement additionnel.

class Etudiant
{
   private double grade;
   public double Grade
    {
     get {
         return grade;
         }
     set {
       grade = value;
         }
    }
}

Depuis C# 3.0 il est possible d’implémenter les propriétés automatiquement ; ce qui rend la déclaration de propriété plus concise quand aucune logique supplémentaire n’est requise dans les accesseurs de propriété.

public string Grade { get; set; }

4.1 Propriétés statiques

4.2 Propriétés readonly

On peut définir une propriété en lecture seule en ne fournissant que le code du get.

4.3 Accessibilité des accesseurs

Chaque accesseur a sa propre accessibilité .

Les modificateurs d’accès ne sont autorisés que sur l’un des accesseurs  (habituellement set). Si l’on a qu’un seul accesseur, alors il n’y a pas de modificateur d’accès sur l’accesseur.

LAISSER UN COMMENTAIRE

Entrez votre commentaire!
Entrez votre nom ici