1. Kelas disimpan di heap. Metode ini dapat menjamin fleksibilitas siklus hidup data yang dikeluarkan. Meskipun ada beberapa kerugian dalam kinerja, karena optimalisasi heap yang dikelola, kerugiannya relatif kecil.
Namun terkadang kita hanya membutuhkan struktur data yang relatif kecil, barulah kita bisa mempertimbangkan untuk menggunakan struktur tersebut
menyukai
jendela kelasFormulir
{
int publik Kiri;
publik int Kanan;
}
Kelas seperti itu, dengan hanya dua item penyimpanan, hanya perlu menangani dua variabel ini. Kemudian dapat didefinisikan sebagai suatu struktur
struct windowFormulir
{
int publik Kiri;
publik int Kanan;
windowForm(int kiri, int kanan)
{
ini.Kiri = kiri;
ini.Kanan = benar;
}
kumpulan kekosongan publik()
{
Console.WriteLine("Kiri:" + Kiri + " Kanan:" + Kanan);
}
}
Dengan cara ini, struktur dengan konstruktor dapat menghindari masalah dan masalah kinerja saat mendefinisikannya dalam antrian.
Struktur juga dapat mendefinisikan properti, dll.
2. Strukturnya adalah tipe nilai, disimpan di stack atau inline
Sebagai berikut: Kedua metode Set memproses struktur yang sama dan tidak dapat mengubah nilai Left.
Program kelas
{
kekosongan statis Utama (string[] args)
{
windowForm menang = windowForm baru();
menang.set();
Perubahan (menang);
menang.set();
Konsol.Baca();
}
Perubahan kekosongan statis (windowForm menang)
{
menang.Kiri = 1;
}
}
3. Struktur tidak dapat diwariskan
4. Konstruktor struktur adalah konstruktor tanpa parameter yang disediakan oleh kompiler, dan Anda tidak dapat menentukan konstruktor baru untuk menggantikannya.
5. Struktur ini terutama digunakan untuk struktur data yang lebih kecil. Jika terlalu besar, akan terjadi penurunan kinerja.
6. Saat meneruskan struktur sebagai parameter, gunakan kata kunci ref, jika tidak, konten baru akan disalin setiap saat, menyebabkan konsumsi kinerja yang tidak perlu.
7. Ketika satu struktur ditugaskan ke struktur lain, karena struktur tersebut adalah tipe non-referensi, semua salinan akan dibuat setiap saat, dan kelas