Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

C Sharp – Liaison précoce

Programmation en C# (C Sharp)



Lorsque le compilateur du langage met en place immédiatement la liaison du code de la méthode on parle alors de liaison statique ou précoce.

Toute méthode C# qui n’est précédée d’aucun des deux qualificateurs virtual ou override est à liaison statique.

Le compilateur détermine l’adresse exacte de la méthode et lie la méthode au moment de la compilation.

Une méthode statique ne change pas lorsqu’elle est transmise en héritage à une autre classe. Si vous déclarez une classe qui inclut une méthode statique, puis en dérivez une nouvelle classe, la classe dérivée partage exactement la même méthode située à la même adresse. Cela signifie qu’il est impossible de redéfinir les méthodes statiques; une méthode statique fait toujours exactement la même chose, quelque soit la classe dans laquelle elle est appelée.

class Vehicule
{
    protected int nbr_passager = 0;
    public void Passager( int nb) // méthode à liaison précoce
    {
        nbr_passager =nb; 
     }
}
class Voiture : Vehicule
{
   // hérite de la méthode à liaison précoce de la mère
}

Si vous déclarez dans une classe dérivée une méthode ayant la même signature qu’une méthode statique de la classe ancêtre, la nouvelle méthode remplace simplement (on dit aussi masque) la méthode héritée dans la classe dérivée, utilisez le mot clef new pour améliorer la lisibilité.

class Voiture : Vehicule
{
   // masquage de la méthode à liaison précoce de la mère :
    public new void Passager( int nb) // nouvelle méthode à liaison précoce
    {
        nbr_passager = nb+1; 
     }
}


using System;

class Vehicule
{
protected int nbr_passager = 0;
public Vehicule( )
{
Console.WriteLine("(constructeur Vehicule) Nombre de passagers = "+nbr_passager );
}
public  void Passager( int nb) // méthode à liaison statique
{
nbr_passager =nb; 
Console.WriteLine("(Vehicule) Nombre de passagers = "+nbr_passager );
}
}

class Terrestre : Vehicule 
{
public new void Passager( int nb) // méthode à liaison statique masquant celle de classe Vehicule
{
nbr_passager =nb+1; 
Console.WriteLine("(Terrestre ) Nombre de passagers = "+nbr_passager );
}
}

class Voiture : Terrestre 
{
public new void Passager( int nb) // méthode à liaison statique masquant celle de classe Terrestre 
{
nbr_passager =nb+2; 
Console.WriteLine("(Voiture ) Nombre de passagers = "+nbr_passager );
}
}

class Exercice
{
public static void Main(string[ ] args) // méthode principale de lancement de l'exécution
{
Vehicule mercedes;

mercedes =  new Vehicule ( );
mercedes.Passager( 3 );// méthode Passager de la classe Vehicule  qui est utilisée

mercedes =  new Terrestre ( );
mercedes.Passager( 3 );// méthode Passager de la classe Vehicule  qui est utilisée

mercedes =  new Voiture ( );
mercedes.Passager( 3 );// méthode Passager de la classe Vehicule  qui est utilisée

Console.ReadLine();
}
}



Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More