How to use declaration patterns with a switch statement?
How to use declaration patterns with a switch statement?
The documentation uses is
in the example for "declaration patterns" but the book I am reading uses a switch statement. But when I try to run the code I run into errors.
using System; public class Program { public static void Main() { var o = 42; switch (o) { case string s: Console.WriteLine($"A piece of string is {s.Length} long"); break; case int i: Console.WriteLine($"That's numberwang! {i}"); break; } } }
Error:
Compilation error (line 7, col 6): An expression of type 'int' cannot be handled by a pattern of type 'string'.
EDIT
Changing from
var o = 42;
to
object o = 42;
worked.
Full code: https://github.com/idg10/prog-cs-10-examples/blob/main/Ch02/BasicCoding/BasicCoding/Patterns.cs