Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nota
Konten ini dicetak ulang oleh izin Pearson Education, Inc. dari Panduan Desain Kerangka Kerja: Konvensi, Idiom, dan Pola untuk Pustaka .NET yang Dapat Digunakan Kembali, Edisi ke-2. Edisi itu diterbitkan pada tahun 2008, dan buku tersebut telah sepenuhnya direvisi pada edisi ketiga. Beberapa informasi di halaman ini mungkin sudah kedaluarsa.
Jenis nilai tujuan umum paling sering disebut sebagai struct, kata kunci C# -nya. Bagian ini menyediakan panduan untuk desain struktur umum.
❌ JANGAN menyediakan konstruktor tanpa parameter untuk struct.
Dengan mengikuti panduan ini, array struktural dapat dibuat tanpa perlu menjalankan konstruktor untuk setiap item dalam array. Perhatikan bahwa C# tidak mengizinkan struktur memiliki konstruktor tanpa parameter.
❌ JANGAN tentukan jenis nilai yang dapat diubah.
Jenis nilai yang dapat diubah memiliki beberapa masalah. Misalnya, ketika suatu getter properti mengembalikan tipe nilai, pemanggil akan menerima salinannya. Karena salinan dibuat secara implisit, pengembang mungkin tidak menyadari bahwa mereka bermutasi salinan, dan bukan nilai asli. Selain itu, beberapa bahasa (bahasa dinamis, khususnya) memiliki masalah menggunakan jenis nilai yang dapat diubah karena bahkan variabel lokal, ketika didereferensikan, menyebabkan salinan dibuat.
✔️ PASTIKAN bahwa keadaan di mana semua data instance disetel ke nol, salah, atau kosong (sesuai) adalah valid.
Ini mencegah pembuatan instans yang tidak valid secara tidak disengaja saat array struct dibuat.
✔️ DO mengimplementasikan IEquatable<T> pada jenis nilai.
Metode Object.Equals pada tipe nilai menyebabkan pengkotakan, dan implementasi defaultnya tidak terlalu efisien karena menggunakan refleksi. Equals dapat memiliki performa yang jauh lebih baik dan dapat diimplementasikan sehingga tidak akan menyebabkan tinju.
❌ JANGAN secara eksplisit memperpanjang ValueType. Bahkan, sebagian besar bahasa mencegah hal ini.
Secara umum, struktur bisa sangat berguna tetapi hanya boleh digunakan untuk nilai kecil, tunggal, tidak dapat diubah yang tidak akan sering dikotak.
© Sebagian 2005, 2009 Microsoft Corporation. Seluruh hak cipta dilindungi.
Dicetak ulang oleh izin Pearson Education, Inc. dari Panduan Desain Kerangka Kerja: Konvensi, Idiom, dan Pola untuk Pustaka .NET yang Dapat Digunakan Kembali, Edisi ke-2 oleh Krzysztof Cwalina dan Brad Abrams, diterbitkan 22 Okt 2008 oleh Addison-Wesley Professional sebagai bagian dari Seri Pengembangan Microsoft Windows.