摘要:本文主要向大家介绍了分享一个C#编程 组合模式的简单例子,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
本文主要向大家介绍了分享一个C#编程 组合模式的简单例子,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 组合模式
{
public abstract class FileObject
{
public string Name;
public List<FileObject> filelist = new List<FileObject>();
public FileObject(string name)
{
this.Name = name;
}
//打印文件名
public abstract void PrintName();
public abstract void Add(FileObject fileobject);
public abstract void Remove(FileObject fileobject);
}
public class txtFile:FileObject
{
public txtFile(string name)
: base(name)
{ }
public override void PrintName()
{
Console.WriteLine("文件名:" + base.Name);
}
public override void Add(FileObject fileobject)
{
Console.WriteLine("不能向txt文件添加文件!");
}
public override void Remove(FileObject fileobject)
{
Console.WriteLine("不能删除txt文件中的文件!");
}
}
public class docFile:FileObject
{
public docFile(string name):base(name)
{ }
public override void PrintName()
{
Console.WriteLine("文件名:" + base.Name);
}
public override void Add(FileObject fileobject)
{
Console.WriteLine("不能向doc文件添加文件!");
}
public override void Remove(FileObject fileobject)
{
Console.WriteLine("不能删除doc文件中的文件!");
}
}
public class Folder:FileObject
{
public Folder(string name):base(name)
{ }
public override void Add(FileObject fileobject)
{
filelist.Add(fileobject);
Console.WriteLine(base.Name + "中添加了" + fileobject.Name);
}
public override void Remove(FileObject fileobject)
{
if (filelist.Remove(fileobject))
{
Console.WriteLine(base.Name + "中删除了" + fileobject.Name);
}
else
{
Console.WriteLine("删除失败!");
}
}
public override void PrintName()
{
Console.WriteLine("文件名:" + base.Name);
}
}
class Program
{
static void Main(string[] args)
{
FileObject txt1 = new txtFile("txt1");
FileObject txt2 = new txtFile("txt2");
FileObject doc1 = new docFile("doc1");
FileObject doc2 = new docFile("doc2");
FileObject folder1 = new Folder("folder1");
FileObject folder2 = new Folder("folder2");
txt1.Add(txt2);
doc1.Add(doc2);
txt1.Remove(doc1);
folder1.Add(txt1);
folder1.Add(doc2);
folder2.Add(folder1);
folder2.Add(doc1);
folder1.Remove(txt1);
//打印folder1目录下的文件
Console.WriteLine("-------------");
foreach (FileObject file in folder1.filelist)
{
Console.WriteLine(file.Name);
}
//打印folder2目录下的文件
Console.WriteLine("-------------");
foreach (FileObject file in folder2.filelist)
{
Console.WriteLine(file.Name);
}
Console.ReadKey();
}
}
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号