<T> whereT :ModelBase

    科技2022-07-27  116

    public class ModelBase {

    public int ID { get; set; }

    public ModelBase(){

    }

    public ModelBase(int id)

    {

    this.ID = id;

    }

    }

     

    ---------------------------------------------------------------------------------------

     

    public class BaseProxy <T>where T: ModelBase,new() {

     

    protected List<T> modelList;

     

    public BaseProxy()

    {

    modelList = new List<T>();

    }

     

    public bool TryGetModel(int id, out T model)

    {

    model = this.modelList.FirstOrDefault(a => a.ID == id);

     

    if (model == null)

    {

    return false;

    }

    else

    {

    return true;

    }

    }

    }

     

     

     

    --------------------------------------------

     

    public class GoodsProxy:BaseProxy<GoodsModel> {

     

    public GoodsProxy():base()

    {

    this.AddModelToList(new GoodsModel(this.GetMaxId()+1, "Goods0"));

    this.AddModelToList(new GoodsModel(this.GetMaxId()+1, "goods1"));

    this.AddModelToList(new GoodsModel(this.GetMaxId()+1, "goods2"));

    }

     

    private static GoodsProxy GoodProxy;

     

    internal static GoodsProxy GetIntance()

    {

    if (GoodProxy==null)

    {

    GoodProxy = new GoodsProxy();

    }

    return GoodProxy;

    }

    }

    -------------------------------------------------------

     

    public class PackProxy:BaseProxy<PackModel> {

    public PackProxy():base()

    {

    for (int i = 0; i < 15; i++)

    {

    this.AddModelToList(new PackModel(i));

    }

    }

    public PackModel GetEmptyModel()

    {

    return this.modelList.FirstOrDefault(a => a.GoodId == 0);

    }

    internal bool TryGetGoodModel(int id,out PackModel model)

    {

    model = null;

    model = this.modelList.FirstOrDefault(a => a.GoodId == id);

    if (model==null)

    {

    return false;

    }

    else

    {

    return true;

    }

    }

     

    private static PackProxy packProxy;

     

    internal static PackProxy GetIntance()

    {

    if (packProxy==null)

    {

    packProxy = new PackProxy();

    }

    return packProxy;

    }

    }

     

    Processed: 0.009, SQL: 8