国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#組合模式實例詳解

2020-01-24 01:37:09
字體:
來源:轉載
供稿:網友

本文實例講述了C#組合模式。分享給大家供大家參考。具體如下:

Company.cs如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{  public abstract class Company  {    protected string name;    public Company(string name)     {      this.name = name;    }    public abstract void Add(Company c);    public abstract void Remove(Company c);    public abstract void Display(int depth);    public abstract void LineOfDuty();  }}

ConcreteCompany.cs如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{  public class ConcreteCompany:Company  {    private List<Company> children = new List<Company>();    public ConcreteCompany(string name)       :base(name)    {}    public override void Add(Company c)    {      children.Add(c);    }    public override void Remove(Company c)    {      children.Remove(c);    }    public override void Display(int depth)    {      Console.WriteLine(new String('-',depth)+name);      foreach(Company component in children)      {        component.Display(depth+2);      }    }    public override void LineOfDuty()    {      foreach(Company component in children)      {        component.LineOfDuty();      }    }  }}

FinanceDepartment.cs如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{  public class FinanceDepartment:Company  {    public FinanceDepartment(string name) : base(name) { }    public override void Add(Company c)    {    }    public override void Remove(Company c)    {          }    public override void Display(int depth)    {      Console.WriteLine(new String('-',depth)+name);    }    public override void LineOfDuty()    {      Console.WriteLine("{0} 財務支付管理",name);    }  }}

HRdepartment.cs如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{  public class HRdepartment:Company  {    public HRdepartment(string name)      :base(name)    { }    public override void Add(Company c)    {    }    public override void Remove(Company c)    {    }    public override void Display(int depth)    {      Console.WriteLine(new String('-',depth)+name);    }    public override void LineOfDuty()    {      Console.WriteLine("{0} 招聘培訓管理",name);    }  }}

Program.cs如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{  class Program  {    static void Main(string[] args)    {      ConcreteCompany root = new ConcreteCompany("北京總共司");      root.Add(new HRdepartment("人力部"));      root.Add(new FinanceDepartment("財務部"));      ConcreteCompany comp = new ConcreteCompany("上海分公司");      comp.Add(new HRdepartment("分工司人力部"));      comp.Add(new FinanceDepartment("分公司財務部"));      root.Add(comp);      ConcreteCompany comp1 = new ConcreteCompany("南京分部");      comp1.Add(new HRdepartment("南京人力部"));      comp1.Add(new FinanceDepartment("南京財務部"));      comp.Add(comp1);      ConcreteCompany comp2 = new ConcreteCompany("杭洲分部");      comp2.Add(new HRdepartment("杭州人事部"));      comp2.Add(new FinanceDepartment("杭州財務部"));      comp.Add(comp2);      root.Display(1);      Console.ReadKey();    }  }}

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 民丰县| 吉林省| 土默特左旗| 四子王旗| 灌阳县| 长乐市| 乐清市| 晋城| 边坝县| 罗山县| 长宁区| 平舆县| 南华县| 浮山县| 荆门市| 垣曲县| 凉城县| 区。| 个旧市| 武穴市| 抚松县| 定西市| 闸北区| 华蓥市| 朝阳市| 迭部县| 新津县| 南丰县| 同仁县| 车致| 达州市| 商水县| 南平市| 孟津县| 芦山县| 临江市| 洛南县| 耿马| 始兴县| 桓仁| 五河县|