public override string ToString() { var result = new StringBuilder(); result.AppendLine(Name); result.AppendLine("Company:"); if (TheCompany != null) { result.AppendLine(TheCompany.ToString()); } result.AppendLine("Car:"); if (TheCar != null) { result.AppendLine(TheCar.ToString()); } result.AppendLine("Pokemon:"); Pokemons.ForEach(p => result.AppendLine(p.ToString())); result.AppendLine("Parents:"); Parents.ForEach(p => result.AppendLine(p.ToString())); result.AppendLine("Children:"); Children.ForEach(c => result.AppendLine(c.ToString())); return(result.ToString()); }
static void PracticalPatternMatching00() { IEnumerable <object> MyCompany = new TheCompany().BuildTheCompany00(); foreach (var thing in MyCompany) { switch (thing) { case Manager mgr: mgr.AssignedPositionStatus = (mgr.NumberOfDirects >= 500) ? Employee.PositionStatus.SrExec : Employee.PositionStatus.JrExec; break; case Employee emp: break; case ConfrenceRoom cr: break; case null: break; default: throw new InvalidOperationException("Don't know what this is :-("); } } }
static void Main(string[] args) { var TheCompany = new TheCompany().Build(); Demo00(TheCompany); }