Sdílet prostřednictvím


Možnost přísné prohlášení

Omezuje převody implicitní datový typ k rozšiřování pouze převody, zakazuje pozdní vazby a zakazuje implicitní psát, která způsobí, že Object typu.

Option Strict { On | Off }

Části

Termín

Definice

On

Nepovinné.Umožňuje Option Strict kontrola.

Off

Nepovinné.Zakáže Option Strict kontrola.

Poznámky

Při Option Strict On nebo Option Strict se zobrazí v souboru následující podmínky vedou kompilovat- chyba:

  • Implicitní zužujícího převodu.

  • Pozdní vazba

  • Implicitní psát, který vede Object typ

[!POZNÁMKA]

V konfiguracích upozornění , které můžete nastavit Kompilace stránky projektu Designer (Visual Basic), existují tři nastavení, které odpovídají tři podmínky, které způsobují kompilovat- chyba.Informace o použití těchto nastavení naleznete v tématu To set warning configurations in the IDE dále v tomto tématu.

Option Strict Off výpis vypne chyba a upozornění pro všechny tři podmínky kontroly i v případě určit nastavení přidružené IDE na tyto chyby nebo varování. Option Strict On výpis Zapne chyba a upozornění pro všechny tři podmínky kontroly i v případě, že nastavení přidružené IDE určit vypnout tyto chyby nebo varování.

Pokud, Option Strict výpis se musí objevit před ostatní příkazy kódu v souboru.

Při nastavení Option Strict na On, Visual Basic zkontroluje, že datové typy jsou určeny pro všechny programovací prvky.Typy dat můžete explicitně zadán nebo určené pomocí odvození typu místní proměnné.Určení typů dat pro programovací prvky se doporučuje, z následujících důvodů:

  • Umožňuje podporu IntelliSense pro proměnné a parametry.Umožňuje zobrazit jejich vlastnosti a ostatních členů při psaní kódu.

  • Umožňuje kompilátor provést kontrola typů.Kontrola typu vám pomůže najít příkazy, které lze v době spuštění nezdaří z důvodu chyby při převodu typu.Určuje také volání metod pro objekty, které nepodporují tyto metody.

  • Urychluje spuštění kódu.Jedním důvodem je, že pokud neurčíte datový typ programovací element, Visual Basickompilátor přiřadí mu Object typu. Zkompilovaný kód může mít převést tam a zpět mezi Object a další typy dat, které snižuje výkon.

Implicitní zužujícího převodu chyby

Implicitní zužujícího převodu chyby při převodu implicitní datový typ , který je zužujícího převodu.

Visual Basicmůžete převést mnoho typů dat na jiné datové typy.Při převodu hodnoty jednoho datový typ na datový typ , který má menší přesnost nebo menší kapacity, může dojít ke ztrátě dat.Spuštění chyba dochází, pokud selže zužujícího převodu.Option Strictzajišťuje kompilovat-čas oznámení těchto zužující převody, takže se můžete vyhnout.Další informace naleznete v tématu Implicitní a explicitní převody (Visual Basic) a Rozšiřování a zužující převody (Visual Basic).

Převody, které mohou způsobit chyby patří implicitní převody, které nastat ve výrazech.Další informace naleznete v následujících tématech:

Při zřetězení řetězců pomocí & Operátor (Visual Basic), jsou považovány všechny převody řetězců, být rozšiřování.Aby tyto převody negenerují implicitní zužujícího převodu chyba, i když Option Strict na.

Při volání metoda má argument , který má datový typ liší od odpovídajícího parametrzužujícího převodu způsobuje kompilovat-čas chyba , pokud Option Strict na.Vyhnout se kompilovat-čas chyba pomocí rozšiřujícího převodu nebo explicitní převod.

Odstraňují implicitní zužujícího převodu chyby při kompilovat-čas pro převody z prvků For Each…Next kolekce smyčka řízení proměnná. K tomu dochází i v případě Option Strict na.Další informace naleznete v části "Zužující převody" Pro každý...Další příkaz (Visual Basic).

Pozdní vazbu chyby

objekt pozdní vazbou, kdy je přiřazena vlastnost nebo metoda proměnná deklarovaná typu Object.Další informace naleznete v tématu Včasná a zpožděná vazba (Visual Basic).

Implicitní chyby typu objektu

Implicitní objekt typu chybám dochází při odpovídající typ nelze odvodit deklarované proměnnátak typ Object je odvodit.Především dochází při použití Dim deklarovat proměnná bez použití výpis As klauzuli, a Option Infer je vypnuto. Další informace naleznete v tématu Možnost odvodit prohlášení a Specifikace jazyka Visual Basic.

Pro parametry metoda As je volitelná klauzule Pokud Option Strict je vypnuto.Však používá jeden parametr As klauzule, všechny musí používat jej.Pokud Option Strict , je As je vyžadována pro každé definice parametr klauzule.

Pokud deklarovat proměnná bez použití As klauzule a nastavte ji na Nothing, proměnná je typu Object.Žádné kompilovat-v tomto případě dojde k chyba při Option Strict na a Option Infer na.To je Dim something = Nothing.

zcd4xwzs.collapse_all(cs-cz,VS.110).gifVýchozí datové typy a hodnoty

Následující tabulka popisuje výsledky určující datový typ a inicializační výraz v různých kombinacích Dim prohlášení (Visual Basic).

Zadaný typ dat?

Inicializátor určen?

Příklad

Výsledek

Ne

Ne

Dim qty

Pokud Option Strict je vypnuto (výchozí) je proměnná nastavena na Nothing.

Pokud Option Strict na kompilovat-dojde k chyba .

Ne

Ano

Dim qty = 5

Pokud Option Infer je datový typ inicializační výraznabývá proměnná (výchozí).Viz téma Místní odvození typu (Visual Basic).

Pokud Option Infer je vypnuto a Option Strict je vypnuto, má proměnná datový typ Object.

Pokud Option Infer je vypnuto a Option Strict na kompilovat-dojde k chyba .

Ano

Ne

Dim qty As Integer

Inicializuje proměnná na výchozí hodnota datový typ.Další informace naleznete v tématu Dim prohlášení (Visual Basic).

Ano

Ano

Dim qty As Integer = 5

Pokud není datový typ inicializační výraz převést na zadaný datový typ, kompilovat-dojde k chyba .

Pokud není přítomen možnost přísné prohlášení

Pokud zdrojová databáze kód neobsahuje Option Strict výpis Option strictnanastavení Kompilace stránky projektu Designer (Visual Basic) se používá. Stránky kompilace obsahuje nastavení, které zajišťují další řízení podmínek, které generují chyba.

Používáte-ličárapříkazu -kompilátor, můžete použít /optionstrictvolba kompilátor určit nastavení pro Option Strict.

zcd4xwzs.collapse_all(cs-cz,VS.110).gifNastavte možnost přísné v IDE

[!POZNÁMKA]

Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.

  1. V Aplikaci Solution Explorer, vyberte projekt.V nabídce Projekt klikněte na Vlastnosti.Další informace naleznete v tématu Úvod k Návrháři projektu.

  2. Na kompilace karta, nastavte hodnotu v Option Strict pole.

zcd4xwzs.collapse_all(cs-cz,VS.110).gifNastavení konfigurace upozornění v IDE

Při použití Kompilace stránky projektu Designer (Visual Basic) místo Option Strict výpismají další řízení podmínek, které generují chyby. Upozornění konfigurace část Stránky kompilace obsahuje nastavení, které odpovídají tři podmínky, které způsobují kompilovat- chyba při Option Strict na.Tato nastavení jsou následující:

  • Implicitní převod

  • Pozdní vazba; volání nebude v době spuštění

  • Implicitní typ; objekt se předpokládá, že

Při nastavení Option Strict na na, jsou nastaveny všechny tři nastaveníkonfigurace upozorněnína Při. Při nastavení Option Strict na mimo, všechny tři nastavení žádné.

Jednotlivých upozorněníkonfiguracenastavení můžete změnit individuálně žádný, upozornění, nebo Při. Pokud všechny tři upozorněníkonfigurace nastavení Při, On se zobrazí v Option strict pole. Pokud jsou nastaveny všechny tři žádný, Off se zobrazí v tomto poli.Pro kombinaci těchto nastavení (vlastní) se zobrazí.

zcd4xwzs.collapse_all(cs-cz,VS.110).gifNastavte možnost přísné výchozí nastavení pro nové projekty

Při vytvořit projekt Option Strict nastavení kompilace kartě nastavena na hodnotu Option Strict nastavení v Možnostidialog.

Nastavit Option Strict tohoto dialogna Nástrojenabídka, klepněte na tlačítko Možnosti. V Možnosti dialog, rozbalit projekty a řešenía klepněte na tlačítko Výchozí VB. Počáteční výchozí nastavení v Výchozí VB je Off.

zcd4xwzs.collapse_all(cs-cz,VS.110).gifNastavte možnost přísné příkazový řádek

Zahrnout /optionstrictvolba kompilátor v vbc příkaz.

Příklad

Následující příklady ukazují kompilovat-čas chyby způsobené implicitních převodech typů, které jsou zužující převody.Odpovídá této kategorie chyby implicitní převod podmínky na Kompilace stránky.

' If Option Strict is on, this implicit narrowing
' conversion causes a compile-time error.
' The commented statements below use explicit
' conversions to avoid a compile-time error.
Dim cyclists As Long = 5
Dim bicycles As Integer = cyclists
'Dim bicycles As Integer = CType(cyclists, Integer)
'Dim bicycles As Integer = CInt(cyclists)
'Dim bicycles As Integer = Convert.ToInt32(cyclists)


' If Option Strict is on, this implicit narrowing
' conversion causes a compile-time error.
' The commented statements below use explicit
' conversions to avoid a compile-time error.
Dim charVal As Char = "a"
'Dim charVal As Char = "a"c
'Dim charVal As Char = CType("a", Char)


' If Option Strict is on, a compile-time error occurs.
' If Option Strict is off, the string is implicitly converted
' to a Double, and then is added to the other number.
Dim myAge As Integer = "34" + 6


' If Option Strict is on, a compile-time error occurs.
' If Option Strict is off, the floating-point number
' is implicitly converted to a Long.
Dim num = 123.45 \ 10

Následující příklad ukazuje kompilovat- chyba způsobena pozdní vazbu.Tato kategorie chyby odpovídá pozdní vazba; volání nebude při spuštění na podmínky Kompilace stránky.

' If Option Strict is on, this late binding
' causes a compile-time error. If Option Strict
' is off, the late binding instead causes a
' run-time error.
Dim punchCard As New Object
punchCard.Column = 5

Následující příklady ukazují chyby způsobené proměnné, které jsou deklarovány pomocí implicitní typ Object.Tato kategorie chyby odpovídá implicitní typ; objekt se předpokládá, že podmínky na Kompilace stránky.

' If Option Strict is on and Option Infer is off,
' this Dim statement without an As clause 
' causes a compile-time error.
Dim cardReaders = 5

' If Option Strict is on, a compile-time error occurs.
' If Option Strict is off, the variable is set to Nothing.
Dim dryWall
' If Option Strict is on, this parameter without an
' As clause causes a compile-time error.
Private Sub DetectIntergalacticRange(ByVal photonAttenuation)

End Sub

Viz také

Úkoly

Jak: členové přístup k objektu (Visual Basic)

Referenční dokumentace

Kompilace stránky projektu Designer (Visual Basic)

Možnost výslovné prohlášení (Visual Basic)

Funkce převodu typu (Visual Basic)

/optionstrict

Dialogové okno Možnosti výchozí projekty jazyka Visual Basic

Koncepty

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

Implicitní a explicitní převody (Visual Basic)

Vložený výrazy v jazyce XML (Visual Basic)

Převod uvolněné delegáta (Visual Basic)

Pozdní vazba v Office Solutions