[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:
若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。
By No.18