My Composite in C#

2016-01-29 12:48 2 1 收藏

My Composite in C#,My Composite in C#

【 tulaoshi.com - ASP.NET 】


//MyComposite
using System;
using System.Collections;
//----------------------------------Class FileElement
abstract class CFileElement
{
//Fields
protected string name;

public CFileElement(string name)
{
this.name=name;
}
public abstract void Add(CFileElement e);
public abstract void Remove(CFileElement e);
public abstract void Display();
};
//Class CFile
class CFile:CFileElement
{
public CFile(string name):base(name){}

public override void Add(CFileElement e)
{
Console.WriteLine("Can't add any files under a file!");
}
public override void Remove(CFileElement e)
{
Console.WriteLine("Can't remove any sub files!");
}
public override void Display()
{
Console.WriteLine(this.name);
}
};
//Class CFolder
class CFolder:CFileElement
{
private ArrayList children =new ArrayList();

public CFolder(string name):base(name){}
public override void Add(CFileElement e)
{
children.Add(e);
}
public override void Remove(CFileElement e)
{
children.Remove(e);
}
public override void Display()
{
Console.WriteLine(this.name);
foreach(CFileElement e in children)
{
e.Display();
}
}
};
//----------------------------------Class Element
//TestApp
class TestApp
{
public static void Main(string[] args)
{
CFolder root = new CFolder("Z:/");
CFolder afolder=new CFolder("Games/");

afolder.Add(new CFile("cstrike.exe"));
root.Add(afolder);
root.Display(); while(true); }};

来源:http://www.tulaoshi.com/n/20160129/1487651.html

延伸阅读
1。2 自动化的内存管理(Automatic memory management) 手动管理内存需要程序员自行分配和释放内存块。这要求程序员有清晰的头脑和对整个运行过程有十分的 把握(好难!)。而c#把程序员从这难以承担的任务中解放出来。在多数的情况下,这种自动内存管理提 高代码的质量和程序员的生产力。并且,不会对程序的意图和执行产生幅面的影响(?...
1。5 数组类型(Array types) 数组可以是一维的,也可是多维的。数祖的成员可以是整齐的,也可以是变长(jagged)的。 一维的数组是最普通,最简单的。这里值给出一个例子,就不多解释了。*/ using System; class Test {  static void Main() {   int[] arr = new int[5];   for (int i = 0; i arr.Length; i++) &n...
1。3 类型 c#支持两种基本的类型:一种是值(value types),一种是引用(reference types)。值包括简单类型 (char、int、和float),枚举(enum)和结构(struct)。引用包括类(class),界面(interface), 代表(delegate)和数组阵列(array)。值与引用不同之处在于:值直接存储它的数据内容;而引用存储对象 的引用。是不是粉费解...
1。6 统一系统类型(Type system unification) c#独创了一种类型——统一系统类型(为了这个累刑,我头疼死了。谁有更好的名字,请务必告诉 我)。总之,所有的其他类型,包括值和引用,都可以被当作统一系统类型来对待。从概念上说, 所有的类型都从它派生。这样,其他的类型就可以使用统一系统类型的属性和方法。包括一些“简 单”类型,...
C#书写规范  一、命名  对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助。名称应该说明“什么”而不是“如何”。通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层。例如,可以使用 GetNextStudent(),而不是 GetNextArrayElement()。  命名原则是:  选择正确名称...

经验教程

378

收藏

65

精华推荐

走进C# (我的C#学习之旅)之三

走进C# (我的C#学习之旅)之三

会奔跑的花生

走进C# (我的C#学习之旅)之二

走进C# (我的C#学习之旅)之二

卡_小杰

Beginner with c# 7

Beginner with c# 7

飞扬沙尘暴

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部