博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于继承
阅读量:5321 次
发布时间:2019-06-14

本文共 4101 字,大约阅读时间需要 13 分钟。

最近做项目用到继承,说实话以前没有具体的用到过, 所以在开始的时候有点懵逼; 后来还是我们老大给的模板, 有点惭愧, 哈哈。

这是我项目中用到后积累的, 肯定不完整,有什么不足和错误的地方  欢迎大神们提点。

 

下面是基类。

1   public interface IWorkflowProcess 2     { 3         List
GetNextOperator(int id, int projectId); 4 List
GetNextWF(int projectId); 5 } 6 public class WorkflowProcess : IWorkflowProcess 7 { 8 public int ID { get; set; } 9 public string Name { get; set; }10 public string Description { get; set; }11 public string Controller { get; set; }12 public WorkflowProcess()13 {14 }15 public bool CanGetPrerepotNo()16 {17 return (int)enumUserRole.Reviewer == REASContext.CurrentUser.RoleID || ((int)enumDepartment.EvalueDepartmentTwo == REASContext.CurrentUser.DepartmentID);18 }19 public bool CanGetRepotNo()20 {21 return (int)enumUserRole.Reviewer == REASContext.CurrentUser.RoleID;22 }23 public virtual List
GetNextWF(int projectId)24 {25 var nextprocess = WorkflowManager.NextOf(WorkflowManager.GetByID(ID));26 return new List
() 27 { WorkflowManager.GetSelectListItem(nextprocess)28 };29 }30 public virtual List
GetNextOperator(int id, int projectId)31 {32 return bll_Common.GetOperatorByDepartmentSelectList();33 }34 }

子类:

例1、 4     public class WF_ReportApprove : WorkflowProcess, IWorkflowProcess 5     { 6         public override List
GetNextOperator(int id, int projectId) 7 { 8 return bll_Common.GetBeforOperatorSelectList(projectId); 9 }10 }11

 例二、

4 15     public class WF_Balance : WorkflowProcess, IWorkflowProcess 5 16     {
7 18 public override List
GetNextWF(int projectId) 8 19 {
10 21 return new List
()11 22 {12 23 new System.Web.Mvc.SelectListItem()13 24 {14 25 Text =15 26 WorkflowManager.GetByControllerName(enum_WorkflowProcess.WF_Preestimate.GetDescription()).Name,16 27 Value = ((int) enum_WorkflowProcess.WF_Preestimate).ToString(),17 28 Selected = true18 29 },19 30 20 31 new System.Web.Mvc.SelectListItem()21 32 {22 33 Text = WorkflowManager.GetByControllerName(enum_WorkflowProcess.WF_Archive.GetDescription()).Name,23 34 Value = ((int) enum_WorkflowProcess.WF_Archive).ToString()24 35 }25 36 };27 38 }28 39 29 40 public override List
GetNextOperator(int id, int projectId)30 41 {31 42 if (id == (int)enum_WorkflowProcess.WF_Preestimate)32 43 if (REASContext.CurrentUser.DeparmentTypeID == (int)enumDepartmentType.BranchOffice)33 44 {34 45 var user = bll_LoginUser.GetAll().First(p => p.ManageDepID.HasValue && p.ManageDepID.Value == REASContext.CurrentUser.DepartmentID);35 46 return new List
()36 47 {37 48 new SelectListItem()38 49 {39 50 Text = user.DisplayName,40 51 Value = user.ID.ToString()41 52 }42 53 };43 54 }44 55 45 56 return base.GetNextOperator(id, projectId);46 57 }47 58 48 59 }

 例三、

public class WF_Archive : WorkflowProcess, IWorkflowProcess    {    }

 

例子中主要继承的方法为:GetNextWF(int projectId) ,GetNextOperator(int id , int projectId)

例一的返回的是子类的GetNextOperator()方法和基类的 GetNextWF(),

例二返回的是子类的GetNextOperator()和GetNextWF()

例三返回的是基类的GetNextOperator()和GetNextWF()

 

转载于:https://www.cnblogs.com/longshanshan/p/6732541.html

你可能感兴趣的文章
网站性能优化工具推荐
查看>>
5 -- Hibernate的基本用法 --1 ORM和Hibernate
查看>>
请求页面
查看>>
overflow:hidden真的失效了吗?
查看>>
螺旋方阵
查看>>
01_线程的创建和启动
查看>>
Redis简介(一)概述
查看>>
基于jQuery的数字键盘插件
查看>>
js基础(对象)
查看>>
3.栈的实现
查看>>
38.C语言字符串总结
查看>>
TBB Task Scheduler Notes
查看>>
ceshi1
查看>>
(六)、nginx负载均衡即keepalived高可用部署
查看>>
201673020127 郁文曦 课程学习总结
查看>>
前端杂记
查看>>
如何判断是平衡二叉树
查看>>
Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)【A,B,C,D】
查看>>
sys模块
查看>>
并查集Union-find及其在最小生成树中的应用
查看>>