Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 63994|Jawab: 1

[Sumber] C# mewarisi penentuan IsAssignableFrom, IsSubclassOf

[Salin tautan]
Diposting pada 18/11/2019 11.45.09 | | |
Terkadang kita perlu menentukan apakah kelas mengimplementasikan antarmuka, seperti saat menggunakan mekanisme refleksi untuk menemukan jenis tertentu.

Secara sederhana, Anda dapat menggunakan metode Type.IsAssignableFrom:

IsAssignableFrom menunjukkan apakah jenis BarClass dapat ditetapkan ke antarmuka IFoo, sehingga kondisi untuk mengembalikan true adalah bahwa BarClass secara langsung atau tidak langsung mengimplementasikan antarmuka IFoo. Ada juga metode dalam jenis Type, IsSubclassOf, yaituHanyaDigunakan untuk menilai hubungan warisan kelas, seperti

Menunjukkan bahwa FooClass diwarisi dari BarClass.

Tentu saja, IsAssignableFrom juga dapat digunakan untuk menentukan pewarisan.

Jadi, untuk kode berikut:

antarmuka I { /* ... */ }
kelas A : I { /* ... */ }
kelas B : A { /* ... */ }
Nilai yang ditampilkan untuk IsSubclassOf dan IsAssignableFrom adalah:

typeof(A).isAssignableFrom(typeof(I)); salah
typeof(A).isSubClassOf(typeof(I)); salah
  
typeof(I).isAssignableFrom(typeof(A)); benar
typeof(I).isAssignableFrom(typeof(B)); benar
typeof(B).isSubClassOf(typeof(I)); salah
  
typeof(A).isAssignableFrom(typeof(A)); benar
typeof(A).isSubClassof(typeof(A)); salah
  
typeof(A).isAssignableFrom(typeof(B)); benar
jenis(A).isSubKelasdari(jenis(B)); salah
  
typeof(B).isAssignableFrom(typeof(A)); salah
typeof(B).isSubClassof(typeof(A)); benar






Mantan:Konversi Stempel Waktu .NET Core (10-bit)
Depan:Lubang EF Core: DbContextPool menyebabkan kehabisan koneksi kumpulan koneksi database
 Tuan tanah| Diposting pada 19/03/2021 13.39.47 |
Mendapatkan objek yang mewarisi kelas dasar generik

Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com