Yapı Tasarımı

Not

Bu içerik, Çerçeve Tasarım Yönergeleri: Kurallar, Deyimler ve Yeniden Kullanılabilir .NET Kitaplıkları için Desenler, 2. Sürüm'den Pearson Education, Inc.'in izniyle yeniden yazdırılır. Bu baskı 2008'de yayımlandı ve kitap o zamandan beri üçüncü baskıda tamamen revize edilmiştir. Bu sayfadaki bazı bilgiler güncel olmayabilir.

Genel amaçlı değer türü en çok yapısı olan C# anahtar sözcüğü olarak adlandırılır. Bu bölümde genel yapı tasarımına yönelik yönergeler sağlanmaktadır.

❌ Bir yapı için parametresiz bir oluşturucu SAĞLAMAYIN.

Bu yönergeyi izleyerek, dizinin her öğesinde oluşturucuyu çalıştırmak zorunda kalmadan yapı dizilerinin oluşturulmasına olanak tanır. C# öğesinin yapıların parametresiz oluşturuculara sahip olması için izin vermediğini fark edin.

❌ Değiştirilebilir değer türlerini TANıMLAMAYIN.

Değiştirilebilir değer türlerinin çeşitli sorunları vardır. Örneğin, bir özellik alıcısı bir değer türü döndürdüğünde, çağıran bir kopya alır. Kopya örtük olarak oluşturulduğundan, geliştiriciler özgün değeri değil kopyayı sessize aldıklarının farkında olmayabilir. Ayrıca, bazı dillerde (özellikle dinamik diller) değişken değer türleri kullanırken sorun yaşanıyor çünkü yerel değişkenler bile başvurulduğunda kopyanın yapılmasına neden oluyor.

✔️ Tüm örnek verilerinin sıfır, yanlış veya null (uygun şekilde) olarak ayarlandığı bir durumun geçerli olduğundan emin olun.

Bu, yapıların bir dizisi oluşturulduğunda geçersiz örneklerin yanlışlıkla oluşturulmasını önler.

✔️ DO, değer türlerine uygulanır IEquatable<T> .

Object.Equals Değer türlerinde yöntemi kutulama neden olur ve yansıma kullandığından varsayılan uygulaması çok verimli değildir. Equals çok daha iyi performansa sahip olabilir ve kutulamalara neden olmayacak şekilde uygulanabilir.

❌ AÇıKÇA GENIŞLETMEYİN ValueType. Aslında çoğu dil bunu engeller.

Genel olarak yapılar çok yararlı olabilir, ancak yalnızca sık sık kutulanmayacak küçük, tek, sabit değerler için kullanılmalıdır.

Porsiyonlar © 2005, 2009 Microsoft Corporation. Tüm hakları saklıdır.

Pearson Education, Inc. in Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraryes, 2nd Edition by Krzysztof Cwalina and Brad Abrams izniyle yeniden yazdırıldı ve 22 Ekim 2008'de Addison-Wesley Professional tarafından Microsoft Windows Geliştirme Serisi'nin bir parçası olarak yayımlandı.

Ayrıca bkz.