From 2ef5d8ce09ce1cb854c20a2a8a39babd19a3be00 Mon Sep 17 00:00:00 2001 From: Hsu Still <341464@gmail.com> Date: Tue, 20 Mar 2018 17:25:11 +0800 Subject: [PATCH] Add warning against direct cast & fix broken MD link --- docs/faq/basic-operations.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/faq/basic-operations.md b/docs/faq/basic-operations.md index 289ebc22d..f806e59de 100644 --- a/docs/faq/basic-operations.md +++ b/docs/faq/basic-operations.md @@ -1,16 +1,18 @@ # Basic Operations Questions ## How should I safely check a type? + +> [!WARNING] +> Direct casting (e.g. `(Type)type`) is **the least recommended** +> way of casting, as it *can* throw an [InvalidCastException] +> when the object isn't the desired type. +> +> Please refer to [this post] for more details. + In Discord.NET, the idea of polymorphism is used throughout. You may need to cast the object as a certain type before you can perform any action. -There are several ways to cast, with direct casting -`(Type)type` being **the least recommended**, as it *can* throw an -[InvalidCastException] when the object isn't the desired type. - -Please refer to [this post] for more details. - A good and safe casting example: [!code-csharp[Casting](samples/basics/cast.cs)] @@ -83,6 +85,8 @@ reactions. Unfortunately, not at the moment. See [#401](https://github.com/RogueException/Discord.Net/issues/401). +[IChannel]: xref:Discord.IChannel +[ICategoryChannel]: xref:Discord.ICategoryChannel [IGuildChannel]: xref:Discord.IGuildChannel [ITextChannel]: xref:Discord.ITextChannel [IGuild]: xref:Discord.IGuild