Je viens de lire le Microsoft Surface Tutorial. Il y a l'exemple suivant C#:Quelle méthode bizarre appelez-vous?
private void OnCenterItems(object sender, RoutedEventArgs e)
{
var x = this.Photos.ActualWidth/2;
var y = this.Photos.ActualHeight/2;
FindChildren(this.Photos, d => d.GetType() == typeof(ScatterViewItem),
d => ((ScatterViewItem)d).Center = new Point(x,y));
}
private void FindChildren(DependencyObject source,
Predicate<DependencyObject> predicate,
Action<DependencyObject> itemFoundCallback)
{
int childCount = VisualTreeHelper.GetChildrenCount(source);
for (int i = 0; i < childCount; i++)
{
DependencyObject child = VisualTreeHelper.GetChild(source, i);
if (predicate(child))
{
itemFoundCallback(child);
}
FindChildren(child, predicate, itemFoundCallback);
}
}
Je pense que je comprends plus ou moins ce que ces deux méthodes font, mais je n'a jamais vu un appel de méthode comme ceci:
FindChildren(this.Photos, d => d.GetType() == typeof(ScatterViewItem),
d => ((ScatterViewItem)d).Center = new Point(x,y));
Ceci est peut-être parce que je suis un programmeur Java. Donc, quelqu'un peut-il expliquer ce que fait cette syntaxe?
Il est en fait appelée lambda _expression_. – SLaks
à droite, je pensais à '' => 'spécifiquement, parce que c'est l'opérateur lambda;) – Femaref
Non, ce n'est pas un opérateur. – SLaks