Megosztás a következőn keresztül:


Figyelmeztetések konfigurálása a Visual Basicben

A Visual Basic fordító olyan figyelmeztetéseket tartalmaz a kódokkal kapcsolatban, amelyek futásidejű hibákat okozhatnak. Ezekkel az információkkal tisztább, gyorsabb és jobb kódot írhat kevesebb hibával. A fordító például figyelmeztetést fog generálni, amikor a felhasználó megkísérli meghívni egy hozzárendeletlen objektumváltozó egyik tagját, a visszatérési érték megadása nélkül tér vissza egy függvényből, vagy végrehajt egy Try blokkot, amely hibákat tartalmaz a logikában a kivételek elfogásához.

Néha a fordító extra logikát biztosít a felhasználó nevében, hogy a felhasználó a feladatra összpontosíthasson ahelyett, hogy a lehetséges hibákra vár. A Visual Basic korábbi verzióiban az Option Strict beállítást használták a Visual Basic fordító által biztosított további logika korlátozására. A figyelmeztetések konfigurálásával részletesebben korlátozhatja ezt a logikát az egyes figyelmeztetések szintjén.

Előfordulhat, hogy testre szeretné szabni a projektet, és kikapcsolni néhány, az alkalmazásra nem vonatkozó figyelmeztetést, miközben más figyelmeztetéseket hibákká alakít. Ez a lap be- és kikapcsolja az egyes figyelmeztetéseket.

Figyelmeztetések ki- és bekapcsolása

A figyelmeztetések konfigurálásának többféle módja is van: konfigurálhatja őket a Project Designer, használhatja a /warnaserror és /nowarn fordítóbeállításokat, vagy szerkesztheti a projektfájlt (vbproj fájlt), és használhatja a NoWarn MSBuild tulajdonságot. Az MSBuild tulajdonság használatához lásd: Adott figyelmeztetések letiltása egy teljes Visual Basic-projektre.

A Project Designer élménye attól függ, hogy .NET-keretrendszerprojekttel vagy .NET Core-projekttel (vagy .NET 5-ös vagy újabb) projekttel dolgozik.

A .NET Core -projektekben (vagy .NET 5-ös és újabb verziókban) a Project DesignerFordítás szakasza tartalmaz egy Figyelmeztetés súlyosság nevű beállítást, amellyel letilthatja az összes figyelmeztetést, előléptetheti az összes figyelmeztetést a hibákra, vagy választhatja, hogy az egyes figyelmeztetési kategóriákat külön(az alapértelmezett) szabályozza. A figyelmeztetési kategória beállításai a Project Designerugyanazon területén jelennek meg.

A .NET-keretrendszer-projektekben a Project DesignerFordítás lapján jelölje be a Az összes figyelmeztetés letiltása jelölőnégyzetet az összes figyelmeztetés letiltásához; válassza a Minden figyelmeztetés kezelése hibaként az összes figyelmeztetés hibaként való kezeléséhez. Egyes egyes figyelmeztetések hibaként vagy figyelmeztetésként kapcsolhatók a megjelenített táblázatban kívánt módon.

A Project Designer oldal Fordítás füle lehetővé teszi a figyelmeztetések be- és kikapcsolását. Jelölje be a Minden figyelmeztetés letiltása jelölőnégyzetet az összes figyelmeztetés letiltásához; válassza a Minden figyelmeztetés kezelése hibaként az összes figyelmeztetés hibaként való kezeléséhez. Egyes egyes figyelmeztetések hibaként vagy figyelmeztetésként kapcsolhatók a megjelenített táblázatban kívánt módon.

Ha az Option Strict be van állítva ki, az Option Strict-hoz kapcsolódó figyelmeztetések nem kezelhetők egymástól függetlenül. Ha az Szigorú beállítás be van állítva , a kapcsolódó figyelmeztetések hibaként lesznek kezelve, függetlenül attól, hogy milyen állapotban vannak. Amikor a Option Strict be van állítva Egyéni értékre a /optionstrict:custom parancssori fordítóban való megadásával, az Option Strict figyelmeztetések egymástól függetlenül kapcsolhatók be vagy ki.

A fordító /warnaserror parancssori beállításával azt is megadhatja, hogy a figyelmeztetések hibaként legyenek-e kezelve. Vesszővel tagolt listát is hozzáadhat ehhez a beállításhoz, így megadhatja, hogy mely figyelmeztetéseket kell hibaként vagy figyelmeztetésként kezelni a + vagy a -használatával. Az alábbi táblázat a lehetséges lehetőségeket ismerteti.

Parancssori lehetőség Meghatároz
/warnaserror+ vagy /warnaserror Az összes figyelmeztetést hibaként kezelni
/warnsaserror- Ne kezelje a figyelmeztetéseket hibaként. Ez a beállítás az alapértelmezett beállítás.
/warnaserror+:<warning list > Az adott figyelmeztetéseket hibákként kezelje, amelyeket a hibaazonosítójuk alapján egy vesszővel tagolt lista r-jében sorolnak fel.
/warnaserror-:<warning list> Ne kezelje az adott figyelmeztetéseket hibaként, mert a hibaazonosítójuk vesszővel tagolt listában szerepel.
/nowarn Ne jelentsen figyelmeztetéseket.
/nowarn:<warning list> Ne jelentsen megadott figyelmeztetéseket, mert a hibaazonosítójuk vesszővel tagolt listában szerepel.

A figyelmeztető lista tartalmazza a hibákként kezelendő figyelmeztetések hibaazonosítóit, amelyek a parancssori beállításokkal be- és kikapcsolhatók. Ha a figyelmeztető lista érvénytelen számot tartalmaz, hibaüzenet jelenik meg.

Példák

Ez a parancssori argumentumokat szemléltető példatábla az egyes argumentumok működését ismerteti.

Érv Leírás
vbc /warnaserror Megadja, hogy minden figyelmeztetést hibaként kell kezelni.
vbc /warnaserror:42024 Megadja, hogy a 42024-as figyelmeztetést hibaként kell kezelni.
vbc /warnaserror:42024,42025 Megadja, hogy a 42024- és a 42025-ös figyelmeztetéseket hibaként kell kezelni.
vbc /nowarn Azt határozza meg, hogy ne jelenjenek meg figyelmeztetések.
vbc /nowarn:42024 Meghatározza, hogy a 42024-es figyelmeztetést nem szabad jelenteni.
vbc /nowarn:42024,42025 Azt határozza meg, hogy a 42024- és a 42025-ös figyelmeztetések ne jelenjenek meg.

Figyelmeztetések típusai

Az alábbiakban felsoroljuk azokat a figyelmeztetéseket, amelyeket érdemes hibaként kezelni.

Implicit konvertálási figyelmeztetés

Generálva implicit konverziók előfordulásaihoz. Nem tartalmaznak implicit átalakításokat belső numerikus típusból sztringre a & operátor használatakor. Az új projektek alapértelmezés szerint kikapcsolva vannak.

Azonosító: 42016

Késői kötésű metódushívás és túlterhelésfeloldási figyelmeztetés

A késői kötésű példányokhoz jön létre. Az új projektek alapértelmezés szerint kikapcsolva vannak.

Azonosító: 42017

"'Object' típusú operandusokkal kapcsolatos figyelmeztetések"

Akkor jön létre, ha Object típusú operandusok lépnek fel, amely hibát okoz beállításnál. Az új projektek alapértelmezett beállítása be van kapcsolva.

Azonosító: 42018 és 42019

A deklarációkhoz "As" záradékra vonatkozó figyelmeztetések szükségesek

Akkor keletkezett, amikor egy As záradék nélküli változó-, függvény- vagy tulajdonságdeklaráció hibát okozott volna az Option Strict On beállítás esetén. Azok a változók, amelyekhez nincs hozzárendelve típus, feltételezzük, hogy Objecttípusúak. Az új projektek alapértelmezett beállítása be van kapcsolva.

Azonosító: 42020 (változó deklaráció), 42021 (függvénydeklaráció) és 42022 (tulajdonságdeklaráció).

Lehetséges nullhivatkozási kivételekre vonatkozó figyelmeztetések

Akkor jön létre, amikor egy változót használ, mielőtt hozzá lett rendelve egy értékhez. Az új projektek alapértelmezett beállítása be van kapcsolva.

Azonosító: 42104, 42030

Nem használt helyi változó figyelmeztetése

Helyi változó deklarálásakor jön létre, de nem hivatkozik rá. Az alapértelmezett be van kapcsolva.

Azonosító: 42024

Figyelmeztetés: megosztott tag elérése példányváltozón keresztül

A megosztott tag példányon keresztüli elérésekor előfordulhatnak mellékhatások, vagy ha egy megosztott tag példányváltozón keresztüli elérése nem a kifejezés jobb oldala, vagy paraméterként van átadva. Az új projektek alapértelmezett beállítása be van kapcsolva.

Azonosító: 42025

Rekurzív operátor- vagy tulajdonsághozzáférési figyelmeztetések

Akkor jön létre, ha egy rutin törzse ugyanazt az operátort vagy tulajdonságot használja, amelyben definiálva van. Az új projektek alapértelmezett beállítása be van kapcsolva.

Azonosító: 42004 (operátor), 42026 (tulajdonság)

Visszatérési érték nélküli függvény vagy operátor figyelmeztetés

Akkor jön létre, ha a függvény vagy operátor nem rendelkezik megadott visszatérési értékkel. Ebbe beletartozik egy Set kihagyása az implicit helyi változóból, amelynek ugyanaz a neve, mint a függvénynek. Az új projektek alapértelmezett beállítása be van kapcsolva.

Azonosító: 42105 (függvény), 42016 (operátor)

Modulriasztásban használt túlterhelés-módosító

Akkor jön létre, ha Overloads-t használnak egy Module-ben. Az új projektek alapértelmezett beállítása be van kapcsolva.

Azonosító: 42028

Ismétlődő vagy átfedésben lévő fogási blokkokra vonatkozó figyelmeztetések

Akkor jön létre, ha egy Catch blokk soha nem érhető el a definiált más Catch blokkokkal való kapcsolata miatt. Az új projektek alapértelmezett beállítása be van kapcsolva.

Azonosító: 42029, 42031