Maison > développement back-end > C++ > C # Soutien de la covariance de type retour et comment peut-il être réalisé?

C # Soutien de la covariance de type retour et comment peut-il être réalisé?

Linda Hamilton
Libérer: 2025-01-29 15:41:09
original
796 Les gens l'ont consulté

Does C# Support Return Type Covariance, and How Can It Be Achieved?

Le type de collaboration de retour dans le type de retour: support et implémentation

Le type de retour dans le C # permet à la classe dérivée de renvoyer un type plus spécifique que sa classe de base. Cette fonctionnalité permet de créer une méthode qui peut fournir à la fois des comportements professionnels et maintenir l'intégrité de la structure hiérarchique.

Jetons un coup d'œil à un exemple:

Dans cette scène, il existe une méthode de renvoi d'une chaîne dans la classe
<code class="language-csharp">public abstract class Animal
{
    public abstract string GetName();
}

public class Cat : Animal
{
    public string GetMeow();
}</code>
Copier après la connexion
pour spécifier que son appel de miow sera très utile. Cependant, C # ne prend pas directement en charge la coordination du type de retour.

Cat Dans la réponse initiale en 2011, C # n'a pas soutenu les types de changements de collaboration, et en raison des restrictions des langues publiques (CLR), il était peu probable qu'il le réalise à l'avenir. Cependant, dans la dernière version de C #, cette situation a changé. Voir l'article de lien, "

https://www.php.cn/link/40f4d60542d86344e5711c7a5584832

le retour collaboratif", comprendre comment réaliser plus d'informations sur la collaboration du type de retour dans le C # 9.0 et les versions supérieures essence d'essence Avant l'introduction du type de retour CO -changes, une solution consiste à introduire une méthode intermédiaire pour obtenir la valeur de retour de la classe dérivée.

Cette technologie permet à un
<code class="language-csharp">public abstract class Animal
{
    public abstract object GetContents();
    public Animal Contents() { return (Animal)GetContents(); }
}

public class Cat : Animal
{
    protected override object GetContents() { return this; }
    public new string Contents() { return GetMeow(); }
}</code>
Copier après la connexion
spécifique de récupérer

et de renvoyer une chaîne dans cet exemple. Cat Contents Bien que la version avant C # 9.0 ne prenne pas directement en charge la coordination du type de retour, la solution discutée peut toujours être utilisée comme méthode pour réaliser le comportement requis. Cependant, il convient de noter que dans la version supérieure de C #, l'implémentation formelle de la coordination du type de retour fournit une solution plus élégante et plus concise.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal