[ASP.NET]善用.NET Framework內建Delegate讓程式碼簡化及趨向一致性

  • 3372
  • 0

[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<PersonalSalary, int> 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<PersonalSalary> exec = SalaryCompute;
exec(mysalary);

 

 

從上面二個例子可以發現,我們不使用.NET Framework裡所提供Action Delegate

及Func Delegate時,程式碼內部較無一致性命名上比較混亂,此外程式碼也較冗長

,在團隊開發上容易造成維護困難,長久累積下來並不是件好事。

 

除了Action Delegate及Func Delegate之外,.NET Framework裡還提供了以下Delegate

 

 

 

Ref:

委派 (C# 程式設計手冊)

 

 

 

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18