Share via


İç içe Geçmiş Türler

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.

İç içe türü, kapsayan tür olarak adlandırılan başka bir tür kapsamında tanımlanan bir türdür. İç içe yerleştirilmiş bir türün, kapsayan türünün tüm üyelerine erişimi vardır. Örneğin, kapsayan türde tanımlanan özel alanlara ve kapsayan türün tüm artan öğelerinde tanımlanan korumalı alanlara erişimi vardır.

Genel olarak, iç içe türler tedbirli kullanılmalıdır. Bunun birkaç nedeni vardır. Bazı geliştiriciler bu kavram hakkında tam olarak bilgi sahibi değildir. Bu geliştiriciler, örneğin iç içe türlerin değişkenlerini bildirme söz diziminde sorun yaşayabilir. İç içe türler de kapsayan türleriyle çok sıkı bir şekilde ilişkilendirilir ve bu nedenle genel amaçlı türler için uygun değildir.

İç içe türler, kapsayan türlerinin uygulama ayrıntılarını modellemek için en uygundur. Son kullanıcının nadiren iç içe türün değişkenlerini bildirmesi ve neredeyse hiçbir zaman iç içe türleri açıkça örneklemesi gerekmemelidir. Örneğin, bir koleksiyonun numaralandırıcısı bu koleksiyonun iç içe yerleştirilmiş bir türü olabilir. Numaralandırıcılar genellikle kendi kapsayan türlerine göre örneklenir ve birçok dil foreach deyimini desteklediğinden, numaralandırıcı değişkenlerinin nadiren son kullanıcı tarafından bildirilmesi gerekir.

✔️ İç içe türü ile dış türü arasındaki ilişki üye erişilebilirliği semantiği istenen şekilde olduğunda iç içe türler kullanın.

❌ Genel iç içe türleri mantıksal gruplandırma yapısı olarak KULLANMAYIN; bunun için ad alanlarını kullanın.

❌ Genel kullanıma açık iç içe türlerden KAÇıNıN. Bunun tek istisnası, iç içe türündeki değişkenlerin yalnızca alt sınıflama veya diğer gelişmiş özelleştirme senaryoları gibi nadir senaryolarda bildirilmesi gerektiğidir.

❌ Türü içeren türün dışında başvurulabilecekse iç içe türleri KULLANMAYIN.

Örneğin, bir sınıfta tanımlanan bir yönteme geçirilen bir sabit listesi, sınıfında iç içe geçmiş bir tür olarak tanımlanmamalıdır.

❌ İstemci kodu tarafından örneklenmeleri gerekiyorsa iç içe türleri KULLANMAYIN. Bir tür ortak oluşturucuya sahipse, büyük olasılıkla iç içe yerleştirilmemelidir.

Bir tür örneği oluşturulabiliyorsa, bu, türün çerçevede kendi başına bir yeri olduğunu gösterir (bunu oluşturabilir, onunla çalışabilir ve dış türü hiç kullanmadan yok edebilirsiniz) ve bu nedenle iç içe yerleştirilmemelidir. İç türler, dış türle herhangi bir ilişki olmadan dış türün dışında yaygın olarak yeniden kullanılmamalıdır.

❌ İç içe türü bir arabirimin üyesi olarak TANıMLAMAYIN. Birçok dil böyle bir yapıyı desteklemez.

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.