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

Melihat: 22710|Jawab: 0

[Sumber] Perbedaan antara struct dan class di C#

[Salin tautan]
Diposting pada 24/06/2016 11.53.06 | | |
Perbedaan paling penting antara kelas dan struct adalah bahwa kelas adalah tipe referensi, sedangkan struct adalah tipe nilai, dan alokasinya dalam memori berbeda.

Apa itu kelas?

kelas, konsep dasar dalam pemrograman berorientasi objek, adalah jenis struktur data kustom yang biasanya berisi bidang, atribut, metode, atribut, konstruktor, pengindeks, operator, dll. Di .NET, semua kelas pada akhirnya mewarisi dari kelas System.Object, sehingga mereka adalah jenis referensi, yaitu, ketika Anda memperbarui instans kelas, alamat instans tersebut dalam tumpukan terkelola disimpan di tumpukan, dan nilai instans disimpan dalam tumpukan terkelola.

Apa itu struktur?

Struct adalah jenis nilai yang digunakan untuk mengatur sekumpulan variabel terkait ke dalam satu entitas variabel. Semua struktur diwarisi dari kelas System.ValueType, jadi mereka adalah jenis nilai, yaitu, instance struct dibuat pada tumpukan tempat utas ditetapkan, dan menyimpan nilai itu sendiri. Jadi ketika menggunakan struct, kita dapat memperlakukannya sebagai kelas tipe dasar seperti int dan char.



1. class adalah jenis referensi, dan structs adalah jenis nilai

Karena class adalah jenis referensi, class dapat diatur ke null. Tetapi kita tidak dapat membuat struct null karena itu adalah jenis nilai.




2. Saat Anda membuat instance kelas, itu akan dibuat di tumpukan. Dan Anda membuat instance struct, yang akan dibuat pada tumpukan

3. Anda menggunakan referensi ke instance kelas. Dan Anda tidak menggunakan referensi ke struct. (alih-alih menggunakannya secara langsung)

4. Ketika kita meneruskan kelas sebagai argumen ke metode, kita meneruskan referensi. struct meneruskan nilai, bukan referensi.

5. Struct tidak dapat memiliki inisialisasi, kelas dapat memiliki inisialisasi.





6. Kelas dapat memiliki konstruktor tanpa parameter yang jelas, tetapi Struct tidak dapat





7. Kata kunci baru harus dibuat instance sebelum kelas digunakan, dan Struct tidak membutuhkannya




8. Kelas mendukung pewarisan dan polimorfisme, Struct tidak. Catatan: Tetapi Struct dapat mengimplementasikan antarmuka seperti kelas

9. Karena Struct tidak mendukung warisan, anggotanya tidak dapat dimodifikasi dengan Internal yang dilindungi atau dilindungi

10. Konstruktor Class tidak perlu menginisialisasi semua bidang, dan konstruktor Struct harus menginisialisasi semua bidang







11. Kelas dapat mendefinisikan destruktor, tetapi Struct tidak dapat

12. Class cocok untuk data besar dan kompleks, dan Struct cocok untuk jenis baru yang sering digunakan sebagai kombinasi dari beberapa data.



Kesempatan yang Berlaku: Struct memiliki keunggulan kinerja, dan Class memiliki keunggulan ekstensi berorientasi objek.

Jenis yang digunakan untuk penyimpanan data yang mendasarinya dirancang sebagai jenis Struct, dan jenis yang digunakan untuk menentukan perilaku aplikasi dirancang sebagai Kelas. Jika Anda tidak yakin tentang penerapan jenis tersebut di masa mendatang, Anda harus menggunakan Class.




Mantan:Kunci pribadi Alipay RSA dan alat pembuatan satu klik kunci publik
Depan:C# membalikkan kelas bantuan MySQL, simpan
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