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>
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, "
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>
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!