Maison développement back-end Tutoriel C#.Net Surcharge et remplacement en C#

Surcharge et remplacement en C#

Sep 03, 2024 pm 03:13 PM
c# c# tutorial

Le polymorphisme est l'un des concepts importants en C#. Il existe deux types de polymorphisme : le temps de compilation et le temps d'exécution. Les concepts de surcharge et de remplacement sont utilisés respectivement pour y parvenir. En cas de substitution, une classe enfant peut implémenter la méthode de classe parent d'une manière différente, mais la méthode de classe enfant a le même nom et la même signature de méthode que le parent alors qu'en cas de surcharge, il existe plusieurs méthodes dans une classe avec le même nom et des paramètres différents. 🎜>

Comment fonctionnent le remplacement et la surcharge en C# ?

Le fonctionnement du remplacement et de la surcharge en C# est expliqué ci-dessous avec des exemples :

Remplacement

Il y a certains mots-clés que nous utilisons pour remplacer comme virtual, override et base.

Syntaxe :

class Parent
{
public virtual void Example() // base class
{
Console.WriteLine("parent class");
}
}
class Child: Parent
{
public override void Example() // derived class
{
base.Example();
Console.WriteLine("Child class");
}
}
Copier après la connexion
En cela, des mots-clés virtual et override sont utilisés, ce qui signifie que la classe de base est virtuelle et que la classe enfant peut implémenter cette classe et override signifie que cette classe enfant a le même nom et la même signature de méthode que la classe parent.

Exemple n°1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OverridingExample
{
class Subject           // base class
{
public virtual void study()              // base class method
{
Console.WriteLine("Study all the subjects");
}
}
class Mathematics: Subject      //  derived class
{
public override void study()        // derived class method
{
Console.WriteLine("Study Mathematics");
}
}
class Program
{
// main method
static void Main(string[] args)
{
Subject s = new Mathematics();
s.study();
Console.ReadLine();
}
}
}
Copier après la connexion
Dans l'exemple ci-dessus, le nom des méthodes est le même mais leur implémentation est différente. La classe de base est virtuelle et, grâce à cette classe enfant, peut implémenter la méthode de la classe parent à sa manière. La méthode de la classe enfant a un remplacement de mot-clé qui montre que cette méthode est une méthode de remplacement.

Sortie :

Surcharge et remplacement en C#

Exemple n°2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OverridingExample
{
class Subject             // base class
{
public virtual void study()              // base class method
{
Console.WriteLine("Study all the subjects");
}
}
class Mathematics: Subject      //  derived class
{
public override void study()        // derived class method
{
base.study();
Console.WriteLine("Study Mathematics");
}
}
class Program
{
// main method
static void Main(string[] args)
{
Mathematics m = new Mathematics();
m.study();
Console.ReadLine();
}
}
}
Copier après la connexion

Sortie :

Surcharge et remplacement en C#

Dans cet exemple, la classe dérivée a un mot-clé de base qui est utilisé pour appeler la méthode de la classe de base. Donc, dans ce cas, la méthode dérivée est appelée après la méthode de la classe de base.

Points à retenir :

    Dans le concept primordial, le nom de la méthode, la signature de la méthode et le modificateur d'accès sont toujours les mêmes que ceux des classes parent et enfant.
  • La méthode de la classe parent ne peut pas être statique.
Surcharge

En surcharge, il existe plusieurs méthodes avec des signatures de méthode différentes. Vous trouverez ci-dessous quelques exemples qui montrent comment nous pouvons réaliser une surcharge en faisant varier le nombre de paramètres, l'ordre des paramètres et les types de données des paramètres.

Exemple n°1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OverloadingExample
{
class Demo
{
public int Sum(int x, int y)
{
int value = x + y;
return value;
}
public int Sum(int x, int y, int z)
{
int value = x + y + z;
return value;
}
public static void Main(string[] args) // main method
{
Demo d = new Demo();
int sum1 = d.Sum(24, 28);
Console.WriteLine("sum of the two "
+ "integer value : " + sum1);
int sum2 = d.Sum(10, 20, 30);
Console.WriteLine("sum of the three "
+ "integer value : " + sum2);
Console.ReadLine();
}
}
}
Copier après la connexion
Dans l'exemple ci-dessus, il existe deux méthodes portant le même nom mais un nombre de paramètres différent.  La première méthode comprend deux paramètres tandis que la seconde comporte trois paramètres. C'est ce qu'on appelle la surcharge de méthode.

Sortie :

Surcharge et remplacement en C#

Exemple n°2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OverloadingExample
{
class Demo
{
public int Sum(int x, int y, int z)
{
int value = x + y + z;
return value;
}
public double Sum(double x, double y, double z)
{
double value = x + y + z;
return value;
}
public static void Main(string[] args) // main method
{
Demo d = new Demo();
int sum1 = d.Sum(24, 28,7);
Console.WriteLine("sum of the two "
+ "integer value : " + sum1);
double sum2 = d.Sum(10.0, 20.0, 30.0);
Console.WriteLine("sum of the three "
+ "integer value : " + sum2);
Console.ReadLine();
}
}
}
Copier après la connexion
Dans l'exemple ci-dessus, il existe deux méthodes portant le même nom mais leurs types de données sont différents. La première méthode a un type de données entier tandis que la seconde a un type de données double. Donc, dans ce cas, les paramètres varient en raison du type de données différent.

Sortie :

Surcharge et remplacement en C#

Exemple #3
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OverloadingExample
{
class Demo
{
public void Details(String name,int id)
{
Console.WriteLine("Name " + name + ", "
+ "Id " + id); ;
}
public void Details(int id,string name)
{
Console.WriteLine("Name " + name + ", "
+ "Id " + id);
}
public static void Main(string[] args) // main method
{
Demo d = new Demo();
d.Details("John", 10);
d.Details("Joe", 20);
Console.ReadLine();
}
}
}
Copier après la connexion
Dans l'exemple ci-dessus, les noms des méthodes sont les mêmes mais l'ordre des paramètres est différent. La première méthode a un nom et un identifiant resp. alors que le second a respectivement un identifiant et un nom.

Sortie :

Surcharge et remplacement en C#

Points à retenir :

    Dans un concept de surcharge, il n'est pas possible de définir plus d'une méthode avec les mêmes paramètres en cas d'ordre, de type et de numéro.
  • Il n'est pas possible de surcharger une méthode en fonction des différents types de retour.
Avantages de la surcharge et du remplacement en C#

Voici les avantages expliqués.

    La surcharge est l'un des moyens d'obtenir un polymorphisme statique et la substitution est l'un des moyens par lesquels C# atteint le polymorphisme dynamique.
  • Il offre de la flexibilité à l'utilisateur et la propreté du code.
Conclusion

La surcharge et la substitution jouent un rôle majeur dans l'obtention du polymorphisme. La substitution permet à la classe dérivée de s'implémenter à sa manière et, d'autre part, la surcharge concerne les méthodes portant le même nom et différents types d'implémentations de paramètres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1668
14
Tutoriel PHP
1273
29
Tutoriel C#
1256
24
Active Directory avec C# Active Directory avec C# Sep 03, 2024 pm 03:33 PM

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Générateur de nombres aléatoires en C# Générateur de nombres aléatoires en C# Sep 03, 2024 pm 03:34 PM

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

Vue Grille de données C# Vue Grille de données C# Sep 03, 2024 pm 03:32 PM

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Factorielle en C# Factorielle en C# Sep 03, 2024 pm 03:34 PM

Guide de Factorial en C#. Nous discutons ici de l'introduction de factorial en c# ainsi que de différents exemples et de l'implémentation du code.

La différence entre le multithreading et le C # asynchrone La différence entre le multithreading et le C # asynchrone Apr 03, 2025 pm 02:57 PM

La différence entre le multithreading et l'asynchrone est que le multithreading exécute plusieurs threads en même temps, tandis que les opérations effectuent de manière asynchrone sans bloquer le thread actuel. Le multithreading est utilisé pour les tâches à forte intensité de calcul, tandis que de manière asynchrone est utilisée pour l'interaction utilisateur. L'avantage du multi-threading est d'améliorer les performances informatiques, tandis que l'avantage des asynchrones est de ne pas bloquer les threads d'interface utilisateur. Le choix du multithreading ou asynchrone dépend de la nature de la tâche: les tâches à forte intensité de calcul utilisent le multithreading, les tâches qui interagissent avec les ressources externes et doivent maintenir la réactivité de l'interface utilisateur à utiliser asynchrone.

Modèles en C# Modèles en C# Sep 03, 2024 pm 03:33 PM

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Nombres premiers en C# Nombres premiers en C# Sep 03, 2024 pm 03:35 PM

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Comment changer le format de XML Comment changer le format de XML Apr 03, 2025 am 08:42 AM

Il existe plusieurs façons de modifier les formats XML: édition manuellement avec un éditeur de texte tel que le bloc-notes; Formatage automatique avec des outils de mise en forme XML en ligne ou de bureau tels que XMLBeautifier; Définir les règles de conversion à l'aide d'outils de conversion XML tels que XSLT; ou analyser et fonctionner à l'aide de langages de programmation tels que Python. Soyez prudent lorsque vous modifiez et sauvegardez les fichiers d'origine.

See all articles