[ASP.NET]善用.NET Framework内建Delegate让程序简化及趋向一致性

[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让程序简化及趋向一致性


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11505620.html