Obsah:
Definice - Co znamená operátor IS?
Operátor IS v C # je operátor používaný k dynamické kontrole, zda je objekt kompatibilní s daným typem.
Při práci s referenčními typy zahrnujícími základní a odvozené typy je nezbytné převést objekt základního typu na odvozený typ a poté zavolat metodu. V případě, že jednoduché obsazení ze základny na odvozený typ není úspěšné, má za následek vyvolání výjimky. Operátor is se používá k testování úspěšnosti operace obsazení, aniž by způsobil výjimku. Je to efektivní operátor. Kontroluje nejen bezpečné a úspěšné obsazení objektu, ale také vyvolává hodnotu obsazení na úspěšné obsazení. V kódu se však často používá k určení typu objektu bez požadavku na operaci obsazení.
Protože operátor is vrací vždy booleovskou hodnotu (true nebo false) po operaci obsazení a nikdy nevyvolává výjimku, je vysoce spolehlivé použití v aplikačním kódu. Kromě toho umožňuje jednodušším způsobem ověřit typ objektu s daným typem, což snižuje velikost kódu a úsilí o vývoj.
Techopedia vysvětluje operátor IS
Operátor is je operátor pro testování typu se dvěma parametry, které zahrnují výraz referenčního typu. Referenční typ musí být zkontrolován z hlediska převodu a cílového typu, do kterého má být výraz odevzdán. Operátor is vrátí true, pokud daný výraz představující objekt není null a výraz se úspěšně přetypuje na určený typ. Jinak se vrátí false.
Operátor is nemůže být přetížen, aby poskytl jinou sémantiku. Může být použit pro kontrolu referenčních, boxových a unboxingových konverzí, ale ne pro konverze definované uživatelem. Ačkoli je typová kompatibilita výrazu vyhodnocena za běhu, kompilátor C # generuje varování během kompilace, když se operátor is použije na typy, které nejsou kompatibilní.
Například operátor is lze použít ke kontrole, zda je parametr předaný do metody typu, Student nebo jeho odvozený typ, kde Student je typ používaný k reprezentaci informací týkajících se studenta v aplikaci.
Operátor is se liší od operátora AS v tom, že první způsobí provedení dvou sádry, zatímco druhý se vyhýbá dvojitému obsazení do jediného kroku, a tudíž lepšího výkonu je dosaženo použitím operátoru jako.