public T Create() { var typeSwitcher = new TypeSwitch <InnerMap>() .Case(() => new BitArreintjeFastInnerMap(width, height)) .Case(() => new UndefinedInnerMap(width, height)); var createdObject = typeSwitcher.Switch(typeof(T)); return((T)createdObject); }
public IRandom Create() { var typeSwitcher = new TypeSwitch <IRandom>() .Case(() => new NetRandom(seed)) .Case(() => new XorShiftRandom(seed)); var createdObject = typeSwitcher.Switch(typeof(T)); return(createdObject); }