[ASP.NET]善用.NET Framework内建Delegate让程序简化及趋向一致性
.NET Framework里提供了一些内建Delegate,在开发程序的过程若能稍加注意
,应可为我们带来简化程序及程序趋向一致性的好处
举例来说:我们可以看到有Action Delegate及Func Delegate,而这二个Delegate
目前可接受0~16个参数,而差别在于
(1).Action Delegate:封装执行某个指定的Method,无回传值
(2).Func Delegate:封装执行某个指定的Method,具有回传值
当我们不知道Func Delegate的存在时,程序可能是………
delegate int GetSalaryHandler(PersonalSalary obj);
PersonalSalary mysalary = new PersonalSalary();
GetSalaryHandler getsalary = GetSalary;
getsalary(mysalary);
static int GetSalary(PersonalSalary obj)
{
int i = 0;
//do something
return i;
}
但若使用Func Delegate,则程序会是
Func
getsalary = GetSalary;
getsalary(mysalary);
Response.Write(getsalary(mysalary).ToString());
当我们不知道Action Delegate的存在时,程序可能是………
delegate void SalaryComputeHandler();
PersonalSalary mysalary = new PersonalSalary();
SalaryComputeHandler exec = SalaryCompute;
exec(mysalary);
static void SalaryCompute(PersonalSalary obj)
{
//do something
}
但若使用Action Delegate,则程序会是
Action
exec = SalaryCompute;
exec(mysalary);
从上面二个例子可以发现,我们不使用.NET Framework里所提供Action Delegate
及Func Delegate时,程序内部较无一致性命名上比较混乱,此外程序也较冗长
,在团队开发上容易造成维护困难,长久累积下来并不是件好事。
除了Action Delegate及Func Delegate之外,.NET Framework里还提供了以下Delegate
- EventHandler 委派
- EventHandler
委派
- Action 委派
- Func
委派
- ThreadStart 委派
- ParameterizedThreadStart 委派
- AsyncCallback 委派
- Predicate
委派
- AppDomainInitializer 委派
- AssemblyLoadEventHandler 委派
- Comparison
委派
- ConsoleCancelEventHandler 委派
- Converter
委派
- CrossAppDomainDelegate 委派
- UnhandledExceptionEventHandler 委派
- ResolveEventHandler 委派
Ref:
委派 (C# 程序设计手册)
若本文对您有所帮助,欢迎转贴,但请在加注【转贴】及来源出处,并在附上本篇的超链接,感恩您的配合啰。
By No.18
原文:大专栏 [ASP.NET]善用.NET Framework内建Delegate让程序简化及趋向一致性