using System; namespace Delegate { class DelegateSample { static void Main(string[] args) { clsProject Proj = new clsProject(); IProgrammer Program; //调用VBProgrammer Program =new clsVBProgramer(); Proj.WriteProgram(Program); //调鼡CSharpProgrammer Program =new clsCSharpProgramer(); Proj.WriteProgram(Program); } } //定义接口 interface IProgrammer { void WriteCode(); } //定义VBProgrammer类 class clsVBProgramer:IProgrammer { string StrVB = "VBProbramer"; public void WriteCode() { Console.WriteLine("调鼡类{0}",StrVB); } } //定义CSarpProgrammer类 class clsCSharpProgramer : IProgrammer { string StrCS = "CsharpProgramer"; public void WriteCode() { Console.WriteLine("调用類{0}",StrCS); } } //定义Project類 class clsProject { public void WriteProgram(IProgrammer Programmer) { Programmer.WriteCode(); } } }