Activator

//BaseWorkItem item=null;

//switch (type)

        //{
        //    case Consts.WorkType.Cancel:
        //        OnCancel(c);
        //        return item;
        //    case Consts.WorkType.Cut:
        //        item = new CutWorkItem();
        //        break;
        //    case Consts.WorkType.Hunting:
        //        item = new HuntWorkItem();
        //        break;
        //    case Consts.WorkType.Plant:
        //        item = new PlantWorkItem();
        //        break;
        //    case Consts.WorkType.Construct:
        //        item = new ConstructWorkItem();
        //        break;
        //    case Consts.WorkType.Carry:
        //        item = new CarryWorkItem();
        //        break;
        //    case Consts.WorkType.Dismantle:
        //        item = new DismantleWorkItem();
        //        break;

        //}


    /// <summary>
    /// 数组顺需要和工作项枚举顺序一致
    /// </summary>
    public static Type[] types = new Type[] {null, null,typeof(WalkWorkItem), null,null,typeof(HuntWorkItem), typeof(CutWorkItem),
            typeof(PlantWorkItem),null, typeof(CarryWorkItem), typeof(ConstructWorkItem), null, typeof(EatWorkItem),
            typeof(SleepWorkItem), typeof(DismantleWorkItem),null, typeof(StrikeBackWorkItem) };

        var type = WorkItemCreator.types[(int)workType];
        BaseWorkItem item = (BaseWorkItem)System.Activator.CreateInstance(type);


在工厂类中 可以使用Activator.CreateInstance(type) 来减少代码量 使代码更优雅。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值