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