public Code GetCode(string type) 
 {
     Code code = null;
     switch(type)
     {
         case "CITY":
             code = flyweights.GetOrAdd(type, c => new CachedCode(type));
             break;
         case "AREA":
             code = new UncachedCode(type);
             break;
     }
     return code;
 }
        public Code GetCode(string type)
        {
            Code code = null;

            switch (type)
            {
            case "CITY":
                code = flyweights.GetOrAdd(type, c => new CachedCode(type));
                break;

            case "AREA":
                code = new UncachedCode(type);
                break;
            }
            return(code);
        }