Home >Backend Development >C++ >Does C# Support Return Type Covariance, and How Can It Be Achieved?
The return type of collaboration in the return type: support and implementation
The return type in the c#allows the derivative class to return a more specific type than its base class. This feature makes it possible to create a method that can provide both professional behaviors and maintain the integrity of hierarchical structure.
Let's take a look at an example:
In this scene, there is a method of returning a string in the
<code class="language-csharp">public abstract class Animal { public abstract string GetName(); } public class Cat : Animal { public string GetMeow(); }</code>class to specify that its meow call will be very useful. However, C#does not directly support the return type coordination.
Cat
In the initial answer in 2011, C#did not support returning types of collaborative changes, and due to the restrictions of public languages (CLR), it was unlikely to realize it in the future. However, in the latest version of C#, this situation has changed. See the link article, "
The collaborative return", understand how to achieve more information about the return type collaboration in the C# 9.0 and the higher versions Essence Before the introduction of the return type co -changes, one solution is to introduce an intermediate method to obtain the return value of the derived class.
This technology allows a specific
<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>to retrieve
, and return a string in this example. Cat
Contents
Although the version before C# 9.0 does not directly support the return type coordination, the solution discussed can still be used as a method to realize the required behavior. However, it should be noted that in the higher version of C#, the formal implementation of the return type coordination provides a more elegant and more concise solution.
The above is the detailed content of Does C# Support Return Type Covariance, and How Can It Be Achieved?. For more information, please follow other related articles on the PHP Chinese website!