Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Jenis Nilai Boleh Mewarisi daripada Objek dalam C#?
Hubungan warisan antara jenis nilai C# dan Objek
Soalan: ValueType ialah jenis nilai dan Object ialah jenis rujukan Bagaimanakah jenis nilai boleh mewarisi daripada Object?
Jawapan:
Bertentangan dengan soalan asal, C# membenarkan struct (jenis nilai) untuk diwarisi daripada kelas. Malah, semua jenis nilai berasal daripada System.ValueType, yang seterusnya terbit daripada System.Object. Hubungan warisan ini membolehkan struktur mewarisi ahli System.ValueType dan, dengan lanjutan, ahli System.Object.
Cara CLR mengendalikan warisan ini:
Walaupun diwarisi, CLR masih menganggap jenis nilai secara berbeza daripada jenis rujukan. Jenis nilai salin mengikut nilai , manakala jenis rujukan salin mengikut rujukan . Hubungan warisan antara jenis nilai dan jenis rujukan tidak mempengaruhi cara kejadian disalin.
Penjelasan analogi:
Bayangkan satu set kotak:
Dalam analogi ini, kotak merah (jenis nilai) boleh berada sepenuhnya di dalam kotak biru (jenis rujukan), sama seperti struct (jenis nilai) boleh mewarisi daripada kelas (jenis rujukan). Hakikat bahawa jenis nilai diperoleh daripada jenis rujukan tidak menafikan sifat asasnya sebagai jenis nilai.
Oleh itu, hubungan pewarisan antara jenis nilai dan Objek adalah hubungan logik dan tidak menjejaskan tingkah laku asas jenis nilai dari segi penyalinan dan kutipan sampah.
Atas ialah kandungan terperinci Bagaimanakah Jenis Nilai Boleh Mewarisi daripada Objek dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!