Aracılığıyla paylaş


Gölgeleme ve Geçersiz Kılma Arasındaki Farklar (Visual Basic)

Bir temel sınıftan devralan bir sınıf tanımladığınızda, bazen türetilmiş sınıftaki bir veya daha fazla temel sınıf öğesini yeniden tanımlamak istersiniz. Bu amaçla hem gölgelendirme hem de geçersiz kılma kullanılabilir.

Karşılaştırma

Gölgeleme ve geçersiz kılma, türetilmiş bir sınıf bir temel sınıftan devraldığında ve her ikisi de bildirilen bir öğeyi diğeriyle yeniden tanımladığında kullanılır. Ancak ikisi arasında önemli farklılıklar vardır.

Aşağıdaki tablo gölgelendirmeyi geçersiz kılma ile karşılaştırır.

Karşılaştırma noktası Gölge Kullanım Geçersiz kılma
Purpose Türetilmiş sınıfınızda önceden tanımladığınız bir üyeyi tanıtırken sonraki bir temel sınıf değişikliğine karşı koruma sağlar Aynı çağrı dizisi1 ile bir yordamın veya özelliğin farklı bir uygulamasını tanımlayarak polimorfizme ulaşır
Yeniden tanımlı öğe Bildirilen herhangi bir öğe türü Yalnızca bir yordam (Function, Sub, veya ) veya Operatorözelliği
Öğeyi yeniden tanımlama Bildirilen herhangi bir öğe türü Yalnızca aynı çağrı dizisi1'e sahip bir yordam veya özellik
Öğeyi yeniden tanımlama erişim düzeyi Herhangi bir erişim düzeyi Geçersiz kılınan öğenin erişim düzeyi değiştirilemiyor
Öğe yeniden tanımlanabilirliği ve yazılabilirliği Herhangi bir bileşim Geçersiz kılınan özelliğin okunabilirliği veya yazılabilirliği değiştirilemiyor
Yeniden tanımlama denetimi Temel sınıf öğesi gölgelendirmeyi zorlayamaz veya yasaklayamaz Temel sınıf öğesi , NotOverridableveya belirtebilir MustOverrideOverridable
Anahtar sözcük kullanımı Shadowstüretilmiş sınıfta önerilir; Shadows 2 belirtilmemişse Shadows kabul Overridesedilir Overridable veya MustOverride temel sınıfta gerekli; Overrides türetilmiş sınıfta gereklidir
Türetilmiş sınıfınızdan türetilen sınıflara göre yeniden tanımlama öğesini devralma Daha fazla türetilmiş sınıflar tarafından devralınan gölge öğesi; gölgeli öğe hala gizli3 Daha fazla türetilmiş sınıflar tarafından devralınan öğe geçersiz kılınıyor; geçersiz kılınan öğe hala geçersiz kılınmış

1Çağrı sırası öğe türünden (Function, Sub, Operatorveya Property), ad, parametre listesi ve dönüş türünden oluşur. Bir yordamı bir özellik veya başka bir yolla geçersiz kılamazsınız. Bir yordam türünü (Function, Subveya Operator) başka bir türle geçersiz kılamazsınız.

2 veya OverridesbelirtmezsenizShadows, derleyici hangi tür yeniden tanımlama kullanmak istediğinizden emin olmanıza yardımcı olmak için bir uyarı iletisi görüntüler. Uyarıyı yoksayarsanız, gölgeleme mekanizması kullanılır.

3 Gölgelendirme öğesine daha fazla türetilmiş bir sınıfta erişilemiyorsa, gölgelendirme devralınmaz. Örneğin, gölgelendirme öğesini olarak Privatebildirirseniz, türetilmiş sınıfınızdan türetilen bir sınıf, gölge öğesi yerine özgün öğeyi devralır.

Yönergeler

Normalde aşağıdaki durumlarda geçersiz kılma kullanırsınız:

  • Çok biçimli türetilmiş sınıflar tanımlarsınız.

  • Derleyicinin aynı öğe türünü ve çağrı dizisini zorlamasını sağlamak istiyorsunuz.

Normalde aşağıdaki durumlarda gölgelendirme kullanırsınız:

  • Temel sınıfınızın değiştirilebileceğini ve sizinkiyle aynı adı kullanarak bir öğe tanımlayabileceğini tahmin edebilirsiniz.

  • Öğe türünü değiştirme veya sırayı çağırma özgürlüğü istiyorsunuz.

Ayrıca bkz.