Les délégués C# ont toujours été difficiles à saisir et j'ai donc été très heureux de tomber sur logicchild's article on The Code Project web site titled "C# Delegates: Step by Step". Il a une façon très succincte d'expliquer les délégués C# et je peux vous le recommander. Cependant, en essayant les exemples, je vois que deux façons d'initialiser un délégué, principalement:Quelle est la manière "correcte" d'initialiser un délégué 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);
et
CalculationHandler sumHandler2 = math.Sum;
//invoke the delegate
int result = sumHandler2(8, 9);
Console.WriteLine("Result 2 is: " + result);
où la classe de mathématiques est définie comme
public class Math
{
public int Sum(int x, int y)
{
return x + y;
}
}
Alors, quelle est la "bonne" manière et pourquoi?
Whoa. Beaucoup de crimes sont commis «pour des raisons de lisibilité», et parmi eux, le plus important est l'écriture de longs codes alambiqués au lieu d'un code clair et concis. C'est le contraire de la lisibilité. –
amusant j'utilise le second pour la lisibilité. Va juste à montrer que la lisibilité est subjective –
@Konrad, long n'est pas automatiquement alambiquée. Et court n'est pas automatiquement lisible. RegEx me vient à l'esprit ... Le fait est que la façon "plus longue" suit de plus près la façon dont tout le reste fonctionne en C#. Le chemin le plus court est potentiellement confus. J'appelle difficilement CalculationHandler sumHandler1 = new CalculationHandler (math.Sum); un crime. – colithium