C#接触没多长时间,对此起初感觉很简单,
First:delegate,then Definite it in class,and using in the Example.
不过花了几个小时时间自网上研究了http://www.cnblogs.com/lvcao20/articles/1228066.html的理解,现在有了点新的看法,
增加了Interface,对程序的后期扩展及维护能够节省大量人力物力。
前期的实现利用新建的Class:Project能够整体约束、调用接口。
但涉及到类的实例化,及其属性、方法的调用,则会受到某些限制。在本示例中新建的Program对clsVBProgramer 以及clsCSharpProgramer的属性无法实例化,经过测试发现类Project的WriteProgram无法输出前两者的属性。
源代码如下:
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();
}
}
}