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é virtuelle

Programmation en C# (C Sharp)



En C# une propriété peut être déclarée dynamique (mot clef virtual) dans une classe X et être redéfinie (mot clef override) dans une classe dérivée de X ou bien masquée statiquement (mot clef new) dans une autre classe dérivée de X :

class X
{
        public virtual Double prix
        { 
            get { ...}  // propriété virtuelle en lecture
            set { ... } // propriété virtuelle en écriture  
        }
}

//Redéfinition dans une classe fille :

class Y : X
{
        public override Double prix
        { 
            get { ...}  // propriété virtuelle en lecture
            set { ... } // propriété virtuelle en écriture  
        }
}

//Masquage statique dans une classe fille :

class Z : X
{
        public new Double prix
        { 
            get { ...}  // propriété virtuelle en lecture
            set { ... } // propriété virtuelle en écriture  
        }
}

using System;

class ClassePrix
{
private Double prixTotal;
private Double tauxTVA = 1.196;

public virtual Double prix
{ // propriété virtuelle de la classe mère
get 
{
return Math.Round(prixTotal); 
}
set 
{
prixTotal = value * tauxTVA; 
}
}
}

class ClasseNewPrix : ClassePrix
{
private Double prixLocal;
public new Double prix
{ // masquage de la propriété de la classe mère
get 
{
return Math.Round(prixLocal); 
}
set 
{
prixLocal = value * 1.25; 
}
}
}

class ClassePrixFort : ClassePrix
{
private Double prixLocal;
public override Double prix
{// redéfinition de la propriété de la classe mère
get 
{
return Math.Round(prixLocal); 
}
set 
{
prixLocal = value * 1.55; 
}
}
}

class Exercice
{
static private Double prixTotal;
static private Double tauxTVA = 1.196;

static public Double prix
{
get 
{
return Math.Round(prixTotal); 
}
set 
{
prixTotal = value * tauxTVA; 
}
}

public static void Main(string[ ] args) // Méthode principale de lancement de l'exécution
{
ClassePrix Obj = new ClassePrix( );
Double val = 100;
System.Console.WriteLine("Valeur entrée  Obj=new ClassePrix :" + val);
Obj.prix = val;
val = Obj.prix;
System.Console.WriteLine("valeur arrondie (lue)Obj=new ClassePrix  : " + val);
System.Console.WriteLine("----------------------------------------");
Obj = new ClasseNewPrix( );
val = 100;
System.Console.WriteLine("Valeur entrée  Obj=new ClasseNewPrix  :" + val);
( (ClasseNewPrix)Obj ).prix = val;
val = ( (ClasseNewPrix)Obj ).prix;
System.Console.WriteLine("valeur arrondie (lue)Obj=new ClasseNewPrix : " + val);
System.Console.WriteLine("----------------------------------------");
Obj = new ClassePrixFort( );
val = 100;
System.Console.WriteLine("Valeur entrée  Obj=new ClassePrixFort  :" + val);
Obj.prix = val;
val = Obj.prix;
System.Console.WriteLine("valeur arrondie (lue)Obj=new ClassePrixFort : " + val);
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