C# is: Cast Examples

Use the is-cast to check the types of objects. This cast can be used inside if-statements.

Is-keyword. This cast returns true if it succeeds. It returns false if the cast fails. This operator can be used to capture a cast variable.KeywordsCasts

This operator is useful when checking types in if-statements and expressions. We can use "is" for pattern-matching—it can capture the cast value.

An example. The is-operator is used to create an expression. It returns a boolean result of true or false. This is compatible with the if-statement, which requires a boolean context.
Info: The is-operator evaluates the entire class derivation chain when it is applied. The string is both an object and string.
Here: The first 2 if-statement bodies are reached. Their expressions are evaluated to the true value: the casts succeed.
Then: The third if-statement body is not fully evaluated. The string is not a StringBuilder type.
C# program that uses is-operator to cast using System; using System.Text; class Program { static void Main() { // Create a string variable and cast it to an object. string value1 = "Example"; object value2 = value1; // Apply the is-operator with 3 different parameters. if (value2 is object) { Console.WriteLine("is object"); } if (value2 is string) { Console.WriteLine("is string"); } if (value2 is StringBuilder) { Console.WriteLine("is StringBuilder"); // Not reached. } } } Output is object is string

Is, pattern matching. Here we see a separate syntax form for the "is" operator. We have an object, and we want to cast it to a string. We use pattern matching for this.
Here: The is-cast tests to see if the variable "wrapper" is a string. If it is a string, a string local called temp2 is introduced.
Important: This use of the is-cast combines the as-cast with the is-cast. This is probably the best way to cast C# variables.
C# program that uses pattern matching class Program { static void Main() { string temp = "ancient ship"; object wrapper = temp; // Use pattern matching to cast the object to a variable. // ... Wrapper is an object. // ... Temp2 is a string reference. if (wrapper is string temp2) { System.Console.WriteLine( $"STRING = {temp2}, LENGTH = {temp2.Length}"); } } } Output STRING = ancient ship, LENGTH = 12

Instructions. The is-operator is implemented with "isinst". This instruction checks the top of the evaluation stack and compares the type of that variable to the argument type.IL

Note, as. Often, you may need to use in some way a cast value. To store the value received by a cast in a local variable, also consider the as-operator cast.As

A summary. The is-operator is exception-neutral. It is elegantly used in an if-statement expression—it is evaluated to a boolean value. We examined the instruction-level code.

© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.