控制流 / 条件语句 / switch/case 语句

using System;

string Describe(object obj) {
    //C# 8 feature
    switch (obj) {
        case int i when i > 1_000_000:
            return "Big number";
        case string {Length: < 256}:
            return "Short string";
        case Tiger {Age: > 12}:
            return "Old tiger";
        case Tiger {Name: { Length: > 10 }}:
            return "Long tiger name";
        //C# 10 feature
        case Tiger { Name.Length: <= 10 }:
            return "Short tiger name";
        default:
            return "Unknown type";
    }
}

var result = Describe(new Tiger(15"Sherkhan"));
Console.WriteLine(result);
//printed: Old tiger

record Tiger(int Age, string Name);