İzlenecek yol: COM Nesnelerinde Kalıtım Uygulama (Visual Basic)

Visual Basic'in önceki sürümlerinde oluşturulanlar bile, COM nesnelerindeki sınıflardan Public Visual Basic sınıfları türetebilirsiniz. DIĞER herhangi bir temel sınıfın özellikleri ve yöntemleri geçersiz kılınabileceği veya aşırı yüklenebileceği için, COM nesnelerinden devralınan sınıfların özellikleri ve yöntemleri geçersiz kılınabilir veya aşırı yüklenebilir. COM nesnelerinden devralma, yeniden derlemek istemediğiniz mevcut bir sınıf kitaplığınız olduğunda kullanışlıdır.

Aşağıdaki yordamda Visual Basic 6.0 kullanarak sınıfı içeren bir COM nesnesi oluşturma ve ardından temel sınıf olarak kullanma işlemleri gösterilmektedir.

Not

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz. IDE’yi kişiselleştirme.

Bu kılavuzda kullanılan COM nesnesini oluşturmak için

  1. Visual Basic 6.0'da yeni bir ActiveX DLL projesi açın. adlı Project1 bir proje oluşturulur. adlı Class1bir sınıfı vardır.

  2. Proje Gezgini'nde Project1'e sağ tıklayın ve ardından Project1 Özellikleri'ne tıklayın. Proje Özellikleri iletişim kutusu görüntülenir.

  3. Proje Özellikleri iletişim kutusunun Genel sekmesinde, Proje Adı alanına yazarak ComObject1proje adını değiştirin.

  4. Proje Gezgini'nde öğesine sağ tıklayın Class1ve ardından Özellikler'e tıklayın. Sınıfın Özellikler penceresi görüntülenir.

  5. özelliğini olarak NameMathFunctionsdeğiştirin.

  6. Proje Gezgini'nde öğesine sağ tıklayın MathFunctionsve ardından Kodu Görüntüle'ye tıklayın. Kod Düzenleyicisi görüntülenir.

  7. Özellik değerini tutmak için bir yerel değişken ekleyin:

    ' Local variable to hold property value
    Private mvarProp1 As Integer
    
  8. Özellik Let ve Özellik Get özellik yordamları ekleme:

    Public Property Let Prop1(ByVal vData As Integer)
       'Used when assigning a value to the property.
       mvarProp1 = vData
    End Property
    Public Property Get Prop1() As Integer
       'Used when retrieving a property's value.
       Prop1 = mvarProp1
    End Property
    
  9. İşlev ekleme:

    Function AddNumbers(
       ByVal SomeNumber As Integer,
       ByVal AnotherNumber As Integer) As Integer
    
       AddNumbers = SomeNumber + AnotherNumber
    End Function
    
  10. Dosya menüsünde ComObject1.dll Oluştur'a tıklayarak COM nesnesini oluşturun ve kaydedin.

    Not

    Visual Basic ile oluşturulan bir sınıfı COM nesnesi olarak da kullanıma sunmanıza rağmen, bu gerçek bir COM nesnesi değildir ve bu kılavuzda kullanılamaz. Ayrıntılar için bkz . .NET Framework Uygulamalarında COM Birlikte Çalışabilirliği.

Birlikte Çalışma Derlemeleri

Aşağıdaki yordamda, Yönetilmeyen kod (COM nesnesi gibi) ile Visual Studio'nun kullandığı yönetilen kod arasında köprü görevi gören bir birlikte çalışma derlemesi oluşturacaksınız. Visual Basic'in oluşturduğu birlikte çalışma derlemesi, birlikte çalışma hazırlama, parametreleri paketleme işlemi ve DEĞERLERI COM nesnelerine ve COM nesnelerinden geçiş sırasında eşdeğer veri türlerine döndürme gibi COM nesneleriyle çalışmanın ayrıntılarının çoğunu işler. Visual Basic uygulamasındaki başvuru, gerçek COM nesnesini değil birlikte çalışma derlemesini gösterir.

Visual Basic 2005 ve sonraki sürümleriyle COM nesnesi kullanmak için

  1. Yeni bir Visual Basic Windows Uygulaması projesi açın.

  2. Proje menüsünde Başvuru Ekle'ye tıklayın.

    Başvuru Ekle iletişim kutusu görüntülenir.

  3. COM sekmesinde, Bileşen Adı listesine çift tıklayın ComObject1 ve Tamam'a tıklayın.

  4. Proje menüsünde Yeni Öğe Ekle'ye tıklayın.

    Yeni Öğe Ekle iletişim kutusu görüntülenir.

  5. Şablonlar bölmesinde Sınıf'a tıklayın.

    Varsayılan dosya adı olan Class1.vb, Ad alanında görünür. Bu alanı MathClass.vb olarak değiştirin ve Ekle'ye tıklayın. Bu, adlı MathClassbir sınıf oluşturur ve kodunu görüntüler.

  6. COM sınıfından devralmak için aşağıdaki kodu en üstüne MathClass ekleyin.

    ' The inherited class is called MathFunctions in the base class,
    ' but the interop assembly appends the word Class to the name.
    Inherits ComObject1.MathFunctionsClass
    
  7. aşağıdaki kodu 'a MathClassekleyerek temel sınıfın genel yöntemini aşırı yükleme:

    '  This method overloads the method AddNumbers from the base class.
    Overloads Function AddNumbers(
        ByVal SomeNumber As Integer,
        ByVal AnotherNumber As Integer) As Integer
    
        Return SomeNumber + AnotherNumber
    End Function
    
  8. devralınan sınıfını genişletmek için aşağıdaki kodu ekleyin MathClass:

    '  The following function extends the inherited class.
    Function SubtractNumbers(
        ByVal SomeNumber As Integer,
        ByVal AnotherNumber As Integer) As Integer
    
        Return AnotherNumber - SomeNumber
    End Function
    

Yeni sınıf, COM nesnesindeki temel sınıfın özelliklerini devralır, bir yöntemi aşırı yükler ve sınıfını genişletmek için yeni bir yöntem tanımlar.

Devralınan sınıfı test etmek için

  1. Başlangıç formunuza bir düğme ekleyin ve kodunu görüntülemek için çift tıklayın.

  2. Düğmenin Click olay işleyici yordamında aşağıdaki kodu ekleyerek örneği MathClass oluşturun ve aşırı yüklenmiş yöntemleri çağırın:

    Dim Result1 As Short
    Dim Result2 As Integer
    Dim Result3 As Integer
    Dim MathObject As New MathClass
    Result1 = MathObject.AddNumbers(4S, 2S) ' Add two Shorts.
    Result2 = MathObject.AddNumbers(4, 2) 'Add two Integers.
    Result3 = MathObject.SubtractNumbers(2, 4) ' Subtract 2 from 4.
    MathObject.Prop1 = 6 ' Set an inherited property.
    
    MsgBox("Calling the AddNumbers method in the base class " &
           "using Short type numbers 4 and 2 = " & Result1)
    MsgBox("Calling the overloaded AddNumbers method using " &
           "Integer type numbers 4 and 2 = " & Result2)
    MsgBox("Calling the SubtractNumbers method " &
           "subtracting 2 from 4 = " & Result3)
    MsgBox("The value of the inherited property is " &
            MathObject.Prop1)
    
  3. F5 tuşuna basarak projeyi çalıştırın.

Formdaki düğmeye tıkladığınızda, AddNumbers yöntem ilk olarak veri türü numaralarıyla Short çağrılır ve Visual Basic temel sınıftan uygun yöntemi seçer. İkinci çağrısı AddNumbers , içinden MathClassaşırı yükleme yöntemine yönlendirilir. Üçüncü çağrı, sınıfını SubtractNumbers genişleten yöntemini çağırır. Temel sınıftaki özelliği ayarlanır ve değer görüntülenir.

Sonraki Adımlar

Aşırı yüklenmiş AddNumbers işlevin, COM nesnesinin temel sınıfından devralınan yöntemle aynı veri türüne sahip olduğunu fark etmiş olabilirsiniz. Bunun nedeni, temel sınıf yönteminin bağımsız değişkenleri ve parametrelerinin Visual Basic 6.0'da 16 bit tamsayılar olarak tanımlanmasıdır, ancak Visual Basic'in sonraki sürümlerinde türün Short 16 bit tamsayıları olarak sunulur. Yeni işlev 32 bit tamsayıları kabul eder ve temel sınıf işlevini aşırı yükler.

COM nesneleriyle çalışırken, parametrelerin boyutunu ve veri türlerini doğruladığınızdan emin olun. Örneğin, bir Visual Basic 6.0 koleksiyon nesnesini bağımsız değişken olarak kabul eden bir COM nesnesi kullandığınızda, Visual Basic'in sonraki bir sürümünden koleksiyon sağlayamazsınız.

COM sınıflarından devralınan özellikler ve yöntemler geçersiz kılınabilir; başka bir deyişle, temel COM sınıfından devralınan bir özelliğin veya yöntemin yerini alacak bir yerel özellik veya yöntem bildirebilirsiniz. Devralınan COM özelliklerini geçersiz kılma kuralları, aşağıdaki özel durumlarla diğer özellikleri ve yöntemleri geçersiz kılma kurallarına benzer:

  • BIR COM sınıfından devralınan herhangi bir özelliği veya yöntemi geçersiz kılarsanız, diğer devralınan tüm özellikleri ve yöntemleri geçersiz kılmanız gerekir.

  • Parametre kullanan ByRef özellikler geçersiz kılınamaz.

Ayrıca bkz.