Návod: Implementace dědičnosti s objekty modelu COM (Visual Basic)

Lze odvodit třídy jazyka Visual Basic z Public třídy COM objekty, tedy i ty, které jsou vytvořeny ve starších verzích Visual Basic.Vlastnosti a metody třídy zděděné z objektů COM můžete přepsat nebo přetížení stejně jako vlastnosti a metody jiné základní třídy můžete přepsat nebo přetížení.Dědičnost z objektů modelu COM je užitečné, pokud máte existující knihovny třídy, nechcete znovu zkompilujte.

Následující postup ukazuje vytvoření objektu COM, která obsahuje třídy pomocí jazyka Visual Basic 6.0, a použít jej jako základní třída.

[!POZNÁMKA]

Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Vytvoření objektu COM, který se používá v tomto

  1. V jazyce Visual Basic 6.0 otevřete nový projekt ActiveX DLL.Projekt s názvem Project1 je vytvořen.Obsahuje třídu s názvem Class1.

  2. V Project Explorer, klepněte pravým tlačítkem na Project1a klepněte na tlačítko Project1 Properties.Vlastnosti projektu zobrazí dialogové okno.

  3. Na Obecné kartě Vlastnosti projektu dialogovém okně klepněte na název projektu změnit zadáním ComObject1 v Název projektu pole.

  4. V Project Explorer, klepněte pravým tlačítkem na Class1a klepněte na tlačítko Vlastnosti.Vlastnosti pro třídu okna.

  5. Změnit Name vlastnost MathFunctions.

  6. V Project Explorer, klepněte pravým tlačítkem na MathFunctionsa klepněte na tlačítko Zobrazení kódu.Editor kódu je zobrazen.

  7. Přidáte místní proměnné pro uložení hodnoty vlastnosti:

    ' Local variable to hold property value
    Private mvarProp1 As Integer
    
  8. Přidání vlastnosti Let a Get vlastnost postupy:

    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. Přidáte funkci:

    Function AddNumbers( 
       ByVal SomeNumber As Integer, 
       ByVal AnotherNumber As Integer) As Integer
    
       AddNumbers = SomeNumber + AnotherNumber
    End Function
    
  10. Vytvořit a registrovat klepnutím na objekt COM ComObject1.dll provést na soubor nabídce.

    [!POZNÁMKA]

    Ačkoli můžete také vystavit vytvořené pomocí třídy Visual Basic jako objekt modelu COM není pravda objektu COM a nelze v tomto návodu.Další informace naleznete v tématu Interoperabilita modelů COM v aplikacích .NET Framework (Visual Basic).

Sestavení InterOp

V následujícím postupu vytvoříte sestavení interop, které slouží jako most mezi nespravovaný kód (například objekt modelu COM) a spravovaný kód Visual Studio používá.Sestavení interop, Visual Basic vytvoří zpracovává mnoho podrobností práci s COM objekty, jako například interop zařazování, typy procesu balení parametry a vrácené hodnoty do dat při jejich z objektů modelu COM a.Odkaz v Visual Basic aplikace odkazuje na sestavení interop není skutečný objekt COM.

Objekt COM pomocí jazyka Visual Basic 2005 a novější verze

  1. Otevřený nový Visual Basic projekt pro aplikace Windows.

  2. V nabídce Projekt klepněte na příkaz Přidat odkaz.

    Zobrazí se dialogové okno Přidat odkaz.

  3. Na COM karta, poklepejte na ComObject1 v Název součásti seznamu a klepněte na tlačítko OK.

  4. V nabídce Projekt klikněte na příkaz Přidat novou položku.

    Zobrazí se dialogové okno Přidat novou položku.

  5. V šablony podokně, klepněte na tlačítko třídy.

    Výchozí název souboru Class1.vb, se zobrazí v název pole.Toto pole změnit na MathClass.vb a na Přidat.Tím se vytvoří třídu pojmenovanou MathClassa zobrazí jeho kód.

  6. Následující kód přidejte na začátek MathClass dědit ze třídy COM.

    ' 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. Přetěžování veřejné metody základní třídy přidáním následujícího kódu na 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. Zděděné třídy rozšířit přidáním následujícího kódu na 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
    

Nová třída dědí vlastnosti základní třídy objektu COM, přetížení metody a definuje nová metoda rozšíření třídy.

Testování zděděné třídy

  1. Do spouštěcího formuláře přidat tlačítko a poklepejte na něj zobrazit jeho kód.

  2. Na tlačítku Click postup obslužné rutiny událostí, přidejte následující kód na vytvoření instance MathClass a volání přetížené metody:

    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. Spuštění projektu stisknutím klávesy F5.

Po klepnutí na tlačítko ve formuláři AddNumbers s prvním volána metoda Short čísla, typ dat a Visual Basic odpovídající metodu zvolí ze základní třídy.Druhé volání AddNumbers je přesměrován do přetížení metody z MathClass.Třetí volání, volání SubtractNumbers metodu, která rozšiřuje třídu.Je-li nastavena vlastnost základní třídy a je zobrazena hodnota.

Další kroky

Jste si všimli, přetížené AddNumbers funkce se zobrazí mít stejný datový typ jako metoda zděděna ze základní třídy objektu COM.Důvodem je, že argumenty a parametry metody základní třídy, které jsou definovány jako celá čísla 16 bitů v jazyce Visual Basic 6.0, ale jsou vystaveny jako celá čísla 16-bit typu Short v novějších verzích jazyka Visual Basic.Nové funkce přijímá celá 32bitová čísla a přetížení funkce základní třídy.

Při práci s objekty COM, ujistěte se, že ověřit velikost a datové typy parametrů.Například při použití objektu COM, která přijímá objekt aplikace Visual Basic 6.0 kolekce jako argument nemůže poskytnout kolekce z novější verzi jazyka Visual Basic.

Vlastnosti a metody, které dědí z třídy COM, lze přepsat, což deklarovat místní vlastnost nebo metodu, která nahradí vlastnosti nebo zděděna ze základní třídy COM.Pravidla pro přepsání zděděné vlastnosti modelu COM jsou podobná pravidla pro potlačení jiné vlastnosti a metody s následujícími výjimkami:

  • Pokud je přepsat libovolné vlastnosti nebo metody zděděné z třídy COM, musí přepsat všechny ostatní zděděné vlastnosti a metody.

  • Vlastnosti, které používají ByRef parametry nemohou být potlačeny.

Viz také

Referenční dokumentace

Inherits – příkaz

Short – datový typ (Visual Basic)

Další zdroje

Interoperabilita modelů COM v aplikacích .NET Framework (Visual Basic)