0Pricing
C# Academy · Lesson

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

  1. is patterns; relational & logical patterns (C# 6 emulation)
  2. switch expressions; exhaustive checks with when (C# 6 emulation)
  3. Domain modeling with discriminated unions (records) — C# 6 emulation
← Back to C# Academy