Rumah >pembangunan bahagian belakang >C++ >Adakah C# menyokong kovarians jenis pulangan, dan bagaimanakah ia dapat dicapai?
Jenis pulangan dalam C#membolehkan kelas derivatif untuk mengembalikan jenis yang lebih spesifik daripada kelas asasnya. Ciri ini memungkinkan untuk membuat kaedah yang dapat memberikan tingkah laku profesional dan mengekalkan integriti struktur hierarki.
mari kita lihat contoh:
Dalam adegan ini, terdapat kaedah untuk mengembalikan rentetan dalam kelas
<code class="language-csharp">public abstract class Animal { public abstract string GetName(); } public class Cat : Animal { public string GetMeow(); }</code>untuk menentukan bahawa panggilan MEOWnya akan sangat berguna. Walau bagaimanapun, C#tidak secara langsung menyokong koordinasi jenis pulangan.
Sebelum pengenalan jenis Co -canges, satu penyelesaian adalah untuk memperkenalkan kaedah pertengahan untuk mendapatkan nilai pulangan kelas yang diperolehi.
spesifik untuk mengambil Walaupun versi sebelum C# 9.0 tidak secara langsung menyokong koordinasi jenis pulangan, penyelesaian yang dibincangkan masih boleh digunakan sebagai kaedah untuk merealisasikan tingkah laku yang diperlukan. Walau bagaimanapun, perlu diperhatikan bahawa dalam versi C#yang lebih tinggi, pelaksanaan rasmi koordinasi jenis kembali menyediakan penyelesaian yang lebih elegan dan lebih ringkas. Cat
Dalam jawapan awal pada tahun 2011, C#tidak menyokong jenis perubahan kolaboratif yang kembali, dan disebabkan oleh sekatan bahasa awam (CLR), ia tidak mungkin menyedarinya pada masa akan datang. Walau bagaimanapun, dalam versi terkini C#, keadaan ini telah berubah. Lihat artikel Pautan, "<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>
Cat
Atas ialah kandungan terperinci Adakah C# menyokong kovarians jenis pulangan, dan bagaimanakah ia dapat dicapai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!