Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.
Výjimka NotImplementedException je vyvolána, když je konkrétní metoda, get accessor nebo set accessor přítomna jako člen typu, ale není implementována.
NotImplementedException používá výchozí implementaci Object.Equals, která podporuje rovnost odkazů. Seznam počátečních hodnot pro instanci NotImplementedExceptionnaleznete v NotImplementedException konstruktorech.
Vyvolejte výjimku
Můžete se rozhodnout vyvolat NotImplementedException výjimku ve vlastnostech nebo metodách vašich vlastních typů, pokud je daný člen ještě ve vývoji a bude teprve později implementován v produkčním kódu. Jinými slovy, NotImplementedException výjimka by měla být synonymem pro "stále ve vývoji".
Zpracujte výjimku
Výjimka NotImplementedException označuje, že metoda nebo vlastnost, kterou se pokoušíte vyvolat, nemá žádnou implementaci, a proto neposkytuje žádné funkce. V důsledku toho byste tuto chybu neměli zpracovat v try/catch bloku. Místo toho byste měli ze svého kódu odebrat vyvolání člena. Volání člena můžete zahrnout při jeho implementaci v produkční verzi knihovny.
V některých případech NotImplementedException nemusí být výjimka použita k označení funkcí, které jsou stále ve vývoji v předprodukční knihovně. To ale stále znamená, že funkce není k dispozici a měli byste ze svého kódu odebrat vyvolání člena.
NotImplementedException a další typy výjimek
.NET obsahuje také dva další typy výjimek a NotSupportedExceptionPlatformNotSupportedException, které označují, že pro konkrétního člena typu neexistuje žádná implementace. Jednu z těchto možností byste měli vyvolat místo NotImplementedException výjimky za následujících podmínek:
PlatformNotSupportedException Vyvolání výjimky na platformách, na kterých se funkce nepodporuje, pokud jste navrhli typ s jedním nebo více členy, které jsou dostupné na některých platformách nebo verzích, ale ne u jiných.
Vyvolejte výjimku, pokud implementace člena rozhraní nebo přepsání metody abstraktní základní třídy není možná.
Například metoda Convert.ToInt32(DateTime) vyvolá výjimku NotSupportedException, protože neexistuje smysluplný převod mezi datem a časem a 32bitovým podepsaným celým číslem. V tomto případě musí být přítomna metoda, protože Convert třída implementuje IConvertible rozhraní.
Pokud jste implementovali abstraktní základní třídu a přidali do ní nový člen, který musí být přepsán odvozenými třídami, měli byste také vyvolat NotSupportedException výjimku. V takovém případě, aby člen abstraktní způsobí selhání načtení existujících podtříd.