is patterns; relational & logical patterns (C# 6 emulation)
Emulate basic patterns in C# 6: type checks with is, range/relational checks, and logical composition via tiny predicate helpers.
Pattern ideas in C# 6
Goal: Use C# 6 to mimic common patterns.
- Type pattern: is + cast
- Relational: helper guards (e.g., >, <)
- Logical: combine small predicates (AND/OR/NOT)
Type pattern via is + cast
Emulate a type pattern with is plus an explicit cast to “bind” a local variable.
using System;
public class Program
{
static string Describe(object x)
{
if (x is int)
{
int i = (int)x; // bind
return "int: " + i;
}
if (x is string)
{
string s = (string)x; // bind
return "string(len=" + (s == null ? 0 : s.Length) + ")";
}
return "other";
}
public static void Main(string[] args)
{
Console.WriteLine(Describe(5));
Console.WriteLine(Describe("hi"));
Console.WriteLine(Describe(3.14));
}
}
All lessons in this course
- is patterns; relational & logical patterns (C# 6 emulation)
- switch expressions; exhaustive checks with when (C# 6 emulation)
- Domain modeling with discriminated unions (records) — C# 6 emulation