泛型方法

是一个抽象的概念,将批量具有共性的操作进行抽象,使用泛型类型来表示这个方法,实现这些类型的方法具有相同的逻辑,而唯一不同的是,它们的类型

 /// <summary>
        /// 更新老师与学生的关系
        /// </summary>
        /// <param name="list">要插入的关系列表</param>
        /// <param name="isAll">是否为全部,如果全部,不需要向关系表插入</param>
        /// <param name="teacherId">当前老师ID</param>
        /// <param name="type">>资源类型0课程,1视频,2作业,3文档</param>
        public void AddUser_Source_R(
            List<User_Source_R> list,
            bool isAll,
            int objId,
            int objType)
        {
            switch (objType)
            {
                case 0:
                    UpdateSource_R<Classroom_Info>(list, isAll, objId);
                    break;
                case 1:
                    UpdateSource_R<Courseware_Info>(list, isAll, objId);
                    break;
                case 2:
                    UpdateSource_R<Task_Info>(list, isAll, objId);
                    break;
                case 3:
                    UpdateSource_R<Substance_Info>(list, isAll, objId);
                    break;
                default:
                    throw new ArgumentException();
            }


        }

        /// <summary>
        /// 泛型方法来干这逻辑相同,只是类型不同的事情
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="list"></param>
        /// <param name="isAll"></param>
        /// <param name="teacherId"></param>
        /// <param name="objId"></param>
        /// <param name="objType"></param>
        void UpdateSource_R<TEntity>(
            List<User_Source_R> list,
            bool isAll,
            int objId)
            where TEntity : class, IAccess
        {
            var entity = LoadRepository<TEntity>().Find(objId);
            if (isAll)
            {
                entity.AccessStatus = 0;
                LoadRepository<TEntity>().Update(entity);
            }
            else
            {
                entity.AccessStatus = 1;
                LoadRepository<TEntity>().Update(entity);
                LoadRepository<User_Source_R>().Insert(list);
            }
        }
复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值