Aracılığıyla paylaş


Arayüz Üyesini Açık Geçersiz Kılma

Bir sınıf dahilinde bir kullanıcı arabirimi üyesinin bir açık geçersiz kılmaya ilişkin söz dizimi C++ öğesine için Yönetilen Uzantılar'dan Visual C++ 2010 öğesine değiştirildi.

Genellikle arabirimi uygulayan bir sınıfın içinde bir arabirim üyesinin iki örneğini sağlamak istersiniz – sınıf nesneleri bir arabirim tanıtıcısı üzerinden yönlendirildiği zaman kullanılan örnek ve sınıf nesneleri sınıf arabirimi üzerinden kullanıldığı zaman kullanılan örnek. Örneğin:

public __gc class R : public ICloneable {
   // to be used through ICloneable
   Object* ICloneable::Clone();

   // to be used through an R
   R* Clone();
};

Yönetilen Uzantılar'da bunu, yöntemin adının arabirimin adı ile nitelendirilmesi ile arabirim yönteminin açık bir bildirimini sağlayarak gerçekleştiririz. Sınıfa özgü örnek niteliksizdir. Bu, Clone dönüş değerini aşağıya yönlendirme ihtiyacını, bu örnekte açıkça bir R durumu üzerinden çağrıldığında, ortadan kaldırır.

Yeni sözdiziminde, Managed Extensions sözdizimi yerine geçen genel bir geçersiz kılma mekanizması tanıtılmıştır. Örneğimiz aşağıdaki şekilde yeniden yazılır:

public ref class R : public ICloneable {
public:
   // to be used through ICloneable
   virtual Object^ InterfaceClone() = ICloneable::Clone;

   // to be used through an R
   virtual R^ Clone();
};

Bu düzeltme açıkça devre dışı bırakılmış olan arayüz üyesine sınıf içinde benzersiz bir isim verilmesini gerektirir. Burada InterfaceClone garip adını sağladım. Davranış yine de aynıdır – ICloneable arabirimi aracılığıyla yapılan bir çağrı yeniden adlandırılmış InterfaceClone,'i çağırırken R türünde bir nesne aracılığıyla yapılan bir arama, ikinci Cloneörneğini çağırır.

Ayrıca bkz.

Başvuru

Explicit Overrides

Kavramlar

Sınıfta veya Arayüzde Üye Bildirimleri