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 – Propriété dans interface

Programmation en C# (C Sharp)



En C# une propriété peut être déclarée dans une interface et comme une méthode d’interface, elle doit être implémentée par une propriété public qui sera soit virtuelle, soit statique :

interface ITruc
{
         Double prix
        { 
            get;  // propriété en lecture
            set; // propriété en écriture  
        }
}

Exemple d’implantation virtuelle dans une classe concrète  :

class Machin : ITruc
{
         public virtual  Double prix
        { 
            get { ...}  // propriété concrète virtuelle en lecture
            set { ... } // propriété concrète virtuelle en écriture  
        }
}

using System;

abstract class Vehicule
{  // classe abstraite mère 
public abstract void Demarrer( ); // méthode abstraite
public void RépartirPassagers( ) 
{
} // implantation de méthode avec corps vide
public void PériodicitéMaintenance( ) 
{
} // implantation de méthode avec corps vide
}
interface IVehicule
{
string TypeEngin
{ // déclaration de propriété abstraite par défaut
get;
set;
}
void Stopper( ); // déclaration de méthode abstraite par défaut
}

//-- classe abstraite héritant de la classe mère et implémentant l'interface :
abstract class UnVehicule : Vehicule, IVehicule
{
private string nom = "";
private string[ ] ArrayInfos = new string[10];
public virtual string TypeEngin
{    // implantation virtuelle de la propriété
get 
{
return nom; 
}
set 
{
nom = "[" + value + "]"; 
}
}
//-- implantation virtuelle de méthode avec corps vide :
public virtual void Stopper( ) 
{
}
}

abstract class Terrestre : UnVehicule
{
private string nomTerre = ""; // champ pour l'exemple
public new void RépartirPassagers( ) 
{
}
public new void PériodicitéMaintenance( ) 
{
}
public override string TypeEngin
{ // redéfinition de propriété
get 
{
return base.TypeEngin; 
}
set
{
string nomTerre = value + "-Terrestre";
this.nomTerre = nomTerre;// accès au champ masqué par la variable locale
base.TypeEngin = nomTerre;
}
}
}

class Voiture : Terrestre
{
public override string TypeEngin
{ // redéfinition de propriété
get 
{
return base.TypeEngin + "-voiture"; 
}
set 
{
base.TypeEngin = "(" + value + ")"; 
}
}
public override void Demarrer()
{
System.Console.WriteLine("Démarrage de " + TypeEngin);
}
public override void Stopper()
{
System.Console.WriteLine("Arrêt de " + TypeEngin);
}
}

class Exercice
{
static void Main(string[ ] args)
{
// instanciation d'une voiture particulière :
UnVehicule x = new Voiture();
x.TypeEngin = "Peugeot"; // propriété en écriture
System.Console.WriteLine("x est une " + x.TypeEngin); // propriété en lecture
x.Demarrer();
x.Stopper();
System.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