My Composite in C#

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

//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);

}

};

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航