using System.Collections.Generic;
public static void Main()
GetTransformers(TransformerType.Decepticon).Dump();
GetTransformersOop(TransformerType.Autobot).Dump();
public static IEnumerable<ITransformer> GetTransformersOop(TransformerType t)
if (t == TransformerType.Autobot)
else if (t == TransformerType.Decepticon)
public static List<ITransformer> GetTransformers(TransformerType t)
if (t == TransformerType.Autobot)
return GetAutobots().ToList<ITransformer>();
else if (t == TransformerType.Decepticon)
return GetDecepticons().ToList<ITransformer>();
static List<Autobot> GetAutobots()
new Autobot { Name = "Optimus" }
static List<Decepticon> GetDecepticons()
return new List<Decepticon>
new Decepticon { Name = "Megatron" }
public interface ITransformer
string Name { get; set; }
public enum TransformerType { Autobot = 1, Decepticon = 2 };
public class Autobot : ITransformer
public string Name { get; set; }
public class Decepticon : ITransformer
public string Name { get; set; }