Je ne sais pas si le titre a du sens, mais dans l'application que j'écris il y a beaucoup de méthodes (d'extension). Un exemple simple:Mise en œuvre automatique de la boucle
Objets:
Matter (Burn, Explode, Destroy, Freeze, Heat, Cool)
Atom (Attach, Detach)
<many more>
Et une collection personnalisée comme:
ImmutableList<T>
et des méthodes comme celles-ci:
public static class Burner
{
public static Matter Burn (this Matter matter)
{
// matter is burning ...
}
}
var matters = new ImmutableList<Matter>();
matters.Burn();
Comme vous pouvez le voir, Brûler des œuvres sur une seule entité, mais apparaît toujours sur ImmutableList. De cette façon, je veux gérer la paralellisation (brûler en parallèle) moi-même.
Comment procéder de la manière la plus performante, la plus propre, la plus facile à entretenir ou la combinaison? Premièrement, je préfère ne pas définir une autre méthode d'extension qui prend ImmutableList à l'intérieur de chaque classe (Burner, etc), car il y en a des centaines sur des centaines comme celles-ci et elles vont probablement se ressembler. Mais je suis ouvert aux idées.
Tout le code est à moi, donc je peux changer/ajouter n'importe quoi dans n'importe quelle partie du code, pas seulement les méthodes d'extension.
Merci, mais ForEach n'est pas parallèle, et je veux gérer ma propre parallélisation aux besoins spécifiques de l'application. Aussi je préférerais la syntaxe dans mon post si possible. –
Peut-être que je ne comprends pas votre problème correctement, mais qu'est-ce qui vous empêche d'implémenter votre propre méthode 'ForEach'? – dtb
Je pourrais, mais je voudrais avoir une syntaxe comme: questions.Burn(); Sinon, il y aura beaucoup d'appels ForEach dans le code, pas que ce soit une mauvaise chose, mais c'est tellement évident que je veux un appel "direct", donc des méthodes d'extension. –