Sdílet prostřednictvím


Operator – příkaz

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 Public (Visual Basic) přístup.

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

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

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

  • Widening
    Požadované pro převod operátor nezadáte Narrowing.Označuje, že tento postup operátor definuje Rozšíření (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 Narrowing (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 elementu (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.

  • End Operator
    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 Kontexty deklarace a výchozí úrovně přístupu (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šíření a zúžení převodů (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

Postupy: Definice operátora (Visual Basic)

Postupy: Definice operátora převodu (Visual Basic)

Postupy: Volání procedury operátora (Visual Basic)

Postupy: Použití třídy, která definuje operátory (Visual Basic).

Referenční dokumentace

IsFalse – operátor (Visual Basic)

IsTrue – operátor (Visual Basic)

Rozšíření (Visual Basic)

Narrowing (Visual Basic)

Koncepty

Rozšíření a zúžení převodů (Visual Basic)

Procedury operátoru (Visual Basic)