Sdílet prostřednictvím


Operátor prohlášení

Deklaruje operátor symbol, operandy a kód, který bude definovat procedury operátor na třídy nebo struktury.

[ <attrlist> ] Public [ Overloads ] Shared [ Shadows ] [ Widening | Narrowing ] 
Operator operatorsymbol ( operand1 [, operand2 ]) [ As [ <attrlist> ] type ]
    [ statements ]
    [ statements ]
    Return returnvalue
    [ statements ]
End Operator

Části

  • attrlist
    Nepovinné.Viz seznam atributů.

  • Public
    Povinné.Označuje, že je tento postup operátor Veřejné (Visual Basic) přístup.

  • Overloads
    Nepovinné.Viz téma Přetížení (Visual Basic).

  • Shared
    Povinné.Označuje, že tento postup operátor Sdílené (Visual Basic) postup.

  • Shadows
    Nepovinné.Viz téma Stíny (Visual Basic).

  • Widening
    Požadované pro převod operátor nezadáte Narrowing.Označuje, že tento postup operátor definuje Rozšiřování (Visual Basic) převodu.Na této stránce nápovědy naleznete v části "Rozšíření a zužující převody".

  • Narrowing
    Požadované pro převod operátor nezadáte Widening.Označuje, že tento postup operátor definuje Zužujícího (Visual Basic) převodu.Na této stránce nápovědy naleznete v části "Rozšíření a zužující převody".

  • operatorsymbol
    Povinné.Symbol nebo identifikátor operátor, který definuje tento postup operátor.

  • operand1
    Povinné.Název a typ jediný operand Unární operátor (včetně převodu operátor) nebo levý operand binární operátor.

  • operand2
    Požadováno pro binární operátory.Název a typ pravý operand binární operátor.

    operand1a operand2 mají následující syntaxi a částí:

    [ ByVal ] operandname [ As operandtype ]

    Část

    Description

    ByVal

    Volitelné, ale mechanismus předávání musí být ByVal (Visual Basic).

    operandname

    Povinné.Název proměnné reprezentující tento operand.Viz téma Deklarovaný názvy prvků (Visual Basic).

    operandtype

    Volitelné Pokud Option Strict je On.Typ dat tento operand.

  • type
    Volitelné Pokud Option Strict je On.Vrátí typ dat hodnoty postupem operátor.

  • statements
    Nepovinné.Blok příkazů, které spustí proceduru operátor.

  • returnvalue
    Povinné.Hodnotu, vrátí operátor postup volající kód.

  • EndOperator
    Povinné.Definice tohoto postupu operátor ukončí.

Poznámky

Můžete použít Operator pouze ve třídě nebo struktuře.To znamená prohlášení kontextu operátor nemůže být zdrojový soubor, obor názvů, modul, rozhraní, postup nebo bloku.Další informace naleznete v tématu Prohlášení kontextů a úrovně přístupu výchozí (Visual Basic).

Všechny operátory musí být Public Shared.Nelze zadat ByRef, Optional, nebo ParamArray pro buď operand.

Nelze použít operátor symbol nebo identifikátor držet vrácenou hodnotu.Je nutné použít Return prohlášení a je nutné zadat hodnotu.Libovolný počet Return příkazy můžete umístit na libovolné místo v postupu.

Definování operátor tímto způsobem se nazývá přetížení operátor, zda použijete Overloads klíčové slovo.Následující tabulka uvádí operátory, které lze definovat.

Type

Operátory

Unární

+, -, IsFalse, IsTrue, Not

Binární

+, -, *, /, \, &, ^, >>, <<, =, <>, >, >=, <, <=, And, Like, Mod, Or, Xor

Převod (unární)

CType

Všimněte si, že = je v seznamu binární operátor porovnávací operátor operátor přiřazení.

Pokud definujete CType, je nutné zadat buď Widening nebo Narrowing.

Odpovídající dvojice.

Některé hospodářské subjekty musí definovat jako odpovídající dvojice.Můžete definovat buď operátor tyto dvojice, musíte definovat ostatní také.Odpovídající dvojice jsou následující:

  • = a <>

  • > a <

  • >= a <=

  • IsTrue a IsFalse

Omezení typu dat

Každý operátor, který definujete musí zahrnovat třídy nebo struktury, na kterém jste ji definovat.To znamená, že třídy nebo struktury musí být uvedeny následující typ dat:

  • Operand Unární operátor.

  • Alespoň jeden z operandů binární operátor.

  • Operand nebo návratový typ převodu operátor.

Některé operátory mají další data, zadejte následující omezení:

  • Pokud definujete IsTrue a IsFalse operátorů, musí oba vrátit Boolean typu.

  • Pokud definujete << a >> operátorů, je nutné zadat Integer zadejte operandtype z operand2.

Návratový typ není třeba odpovídat typu buď operand.Například operátor porovnání jako = nebo <> vrátit Boolean i v případě, že ani jeden operand je Boolean.

Logické a bitové operátory

And, Or, Not, A Xor operátory logické nebo bitové operace lze provádět v jazyce Visual Basic.Jestliže jeden z těchto operátorů na třídy nebo struktury, je definovat pouze jeho bitové operace.

Nelze definovat AndAlso operátor přímo Operator prohlášení.Můžete však použít AndAlso Pokud jsou splněny následující podmínky:

  • Jste And na stejné typy operand, kterou chcete použít pro AndAlso.

  • Vaše definice And vrátí stejný typ jako třídy nebo struktury, na kterém jste je definovali.

  • Jste IsFalse operátor na třídy nebo struktury, na které jsou definovány And.

Podobně lze použít OrElse Pokud jste definovali Or na stejném operandy s návratový typ třídy nebo struktury a definovali IsTrue na třídy nebo struktury.

Rozšiřování a zužující převody

A rozšiřující vždy následuje za běhu, zatímco zužující převody může selhat při běhu.Další informace naleznete v tématu Rozšiřování a zužující převody (Visual Basic).

Pokud deklarujete postup převodu se Widening, kód postupu musí generovat žádné chyby.To znamená následující:

  • Vždy musí vrátit platnou hodnotu typu type.

  • Musí zpracovat, všechny výjimky a další podmínky chyby.

  • Ji musí zpracovat všechny vrátí chyba ze všech postupů, který jej volá.

Pokud existuje riziko, že postup převodu nemusí proběhnout úspěšně, nebo že může způsobit Neošetřená výjimka, musí být deklarovat Narrowing.

Příklad

Následující kód například používá Operator příkaz definovat obrys konstrukce, která zahrnuje postupy operátor And, Or, IsFalse, a IsTrue operátory.Anda Or každý vezmou dva operandy typu abc a vracet typ abc.IsFalsea IsTrue každý trvat jeden operand typu abc a Boolean.Tyto definice umožňují volající kód použití And, AndAlso, Or, a OrElse s operandy typu abc.

Public Structure abc
    Dim d As Date
    Public Shared Operator And(ByVal x As abc, ByVal y As abc) As abc
        Dim r As New abc
        ' Insert code to calculate And of x and y.
        Return r
    End Operator
    Public Shared Operator Or(ByVal x As abc, ByVal y As abc) As abc
        Dim r As New abc
        ' Insert code to calculate Or of x and y.
        Return r
    End Operator
    Public Shared Operator IsFalse(ByVal z As abc) As Boolean
        Dim b As Boolean
        ' Insert code to calculate IsFalse of z.
        Return b
    End Operator
    Public Shared Operator IsTrue(ByVal z As abc) As Boolean
        Dim b As Boolean
        ' Insert code to calculate IsTrue of z.
        Return b
    End Operator
End Structure

Viz také

Úkoly

Postup: definování operátor (Visual Basic)

Postup: definování konverze operátoru (Visual Basic)

Jak: volání procedury operátor (Visual Basic)

Jak: použití třídy, která definuje operátory (Visual Basic)

Referenční dokumentace

Operátor nebo IsFalse (Visual Basic)

Operátor IsTrue (Visual Basic)

Rozšiřování (Visual Basic)

Zužujícího (Visual Basic)

Koncepty

Rozšiřování a zužující převody (Visual Basic)

Operátor postupy (Visual Basic)