C#代表對我來說一直很難掌握,所以我很高興在logicchild's article on The Code Project web site titled "C# Delegates: Step by Step"上偶然發現。他有一個非常簡潔的解釋C#代表的方式,我可以推薦給你。然而,在嘗試的例子中,我看到了兩種方法來初始化一個委託,主要是:初始化C#委託的「正確」方式是什麼?
//create a new instance of the delegate class
CalculationHandler sumHandler1 = new CalculationHandler(math.Sum);
//invoke the delegate
int result = sumHandler1(8, 9);
Console.WriteLine("Result 1 is: " + result);
和
CalculationHandler sumHandler2 = math.Sum;
//invoke the delegate
int result = sumHandler2(8, 9);
Console.WriteLine("Result 2 is: " + result);
在數學課上被定義爲
public class Math
{
public int Sum(int x, int y)
{
return x + y;
}
}
那麼哪個是「正確」的方式,爲什麼?
哇。許多犯罪行爲都是「爲了可讀性」而做出的,其中突出的是編寫長而複雜的代碼,而不是簡明扼要的代碼。這與可讀性相反。 – 2010-09-20 11:18:37
有趣我使用第二個可讀性。只是去顯示可讀性是主觀的 – 2010-09-20 11:18:59
@Konrad,長不會自動平等複雜。短不等於可讀。 RegEx讓人想起......事實是,「更長」的方式更緊密地遵循C#中其他所有工作的方式。較短的方式可能會讓人困惑。我幾乎不會調用CalculationHandler sumHandler1 = new CalculationHandler(math.Sum);犯罪。 – colithium 2010-09-21 10:00:03