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

PublicVisual Basic önceki sürümlerinde oluşturulanlar da dahil olmak üzere COM nesnelerinde sınıflardan Visual Basic sınıfları türetebilirsiniz. COM nesnelerinden devralınan sınıfların özellikleri ve yöntemleri, özellik olarak geçersiz kılınabilir veya aşırı yüklenebilir ve diğer temel sınıfların yöntemlerinin geçersiz kılınabilmesi veya aşırı yüklenmesi olabilir. COM nesnelerinden devralma, yeniden derlemek istemediğiniz mevcut bir sınıf kitaplığınız olduğunda faydalıdır.

aşağıdaki yordamda, bir sınıfı içeren COM nesnesi oluşturmak için Visual Basic 6,0 ' nin nasıl kullanılacağı gösterilmektedir ve ardından bunu temel sınıf olarak kullanın.

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 ' de yeni bir ActiveX DLL projesi açın. Adlı bir proje Project1 oluşturulur. Adında bir sınıfı vardır Class1 .

  2. Project gezgini' nde, Project1' a sağ tıklayın ve ardından Project1 özellikleri' ne tıklayın. Project özellikleri iletişim kutusu görüntülenir.

  3. Project özellikleri iletişim kutusunun genel sekmesinde, ComObject1 Project adı alanına yazarak proje adını değiştirin.

  4. Project gezgini' nde, sağ tıklayın Class1 ve ardından özellikler' e tıklayın. Sınıfının Özellikler penceresi görüntülenir.

  5. NameÖzelliğini olarak değiştirin MathFunctions .

  6. Project gezgini' nde, sağ tıklayın MathFunctions ve ardından kodu görüntüle' ye tıklayın. Kod Düzenleyicisi görüntülenir.

  7. Özellik değerini tutacak bir yerel değişken ekleyin:

    ' Local variable to hold property value
    Private mvarProp1 As Integer
    
  8. Özellik Let ve özellik Get özelliği yordamlarını ekleyin:

    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. Bir işlev ekleyin:

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

    Not

    ayrıca, Visual Basic ile oluşturulmuş bir sınıfı bir com nesnesi olarak kullanıma sunabilseniz de, bu, gerçek bir COM nesnesi değildir ve bu kılavuzda kullanılamaz. ayrıntılar için bkz. .NET Framework uygulamalarda COM birlikte çalışabilirliği.

Birlikte çalışma derlemeleri

aşağıdaki yordamda, yönetilmeyen kod (COM nesnesi gibi) ve yönetilen kod Visual Studio arasında köprü görevi gören bir birlikte çalışma derlemesi oluşturacaksınız. Visual Basic tarafından oluşturulan birlikte çalışma derlemesi, birlikte çalışma hazırlama ve com nesnelerinden gelen ve bunlara geçiş yaparken değerleri eşdeğer veri türlerine döndürme gibi com nesneleriyle çalışma hakkında pek çok ayrıntıyı işler. Visual Basic uygulamasındaki başvuru, gerçek COM nesnesi değil birlikte çalışma derlemesine işaret eder.

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

  1. yeni bir Visual Basic Windows uygulama projesi açın.

  2. Project menüsünde başvuru ekle' ye tıklayın.

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

  3. Com sekmesinde, ComObject1 bileşen adı listesine çift tıklayın ve Tamam' a tıklayın.

  4. Project 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ı, 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ı bir sınıf oluşturur MathClass ve kodunu görüntüler.

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

    ' 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 öğesine ekleyerek temel sınıfın ortak yöntemini aşırı yükleme MathClass :

    '  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. Aşağıdaki kodu öğesine ekleyerek devralınan sınıfı genişletin 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ı 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 sonra kodunu görüntülemek için çift tıklayın.

  2. Düğmenin Click olay işleyicisi yordamında, örneği oluşturmak MathClass ve aşırı yüklenmiş yöntemleri çağırmak için aşağıdaki kodu ekleyin:

    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öntemi ilk olarak Short veri türü numaralarıyla çağırılır ve Visual Basic temel sınıftan uygun yöntemi seçer. İkinci çağrısı, ' AddNumbers den aşırı yükleme yöntemine yönlendirilir MathClass . Üçüncü çağrı, SubtractNumbers sınıfını 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şkenlerinin ve parametrelerinin Visual Basic 6,0 ' de 16 bit tamsayılar olarak tanımlandığından, ancak Visual Basic sonraki sürümlerinde türünün 16 bit tamsayılar olarak sunulmasıdır Short . Yeni işlev 32 bitlik 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 bağımsız değişken olarak Visual Basic 6,0 koleksiyon nesnesini kabul eden bir COM nesnesi kullanırken, Visual Basic daha sonraki bir sürümünden koleksiyon sağlayamezsiniz.

COM sınıflarından devralınan özellikler ve Yöntemler geçersiz kılınabilir, yani bir temel COM sınıfından devralınan bir özelliğin veya yöntemin yerini alan bir yerel özellik veya yöntem bildirebilmeniz anlamına gelir. Devralınan COM özelliklerinin üzerine yazma kuralları, diğer özellikleri ve yöntemleri aşağıdaki özel durumlarla geçersiz kılmak için kurallara benzerdir:

  • Bir COM sınıfından devralınan herhangi bir özelliği veya yöntemi geçersiz kılarsınız, diğer devralınmış özellikleri ve yöntemleri geçersiz kılmanız gerekir.

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

Ayrıca bkz.