Si vous souhaitez écrire un code fiable en adoptant l'immuabilité et en supprimant les effets secondaires, les paramètres out sont une idée absolument terrible. Ils vous obligent à créer des variables mutables juste pour les gérer. (Non pas que C# supporte les variables de niveau méthode en lecture seule de toute façon (du moins dans la version que j'utilise, 3.5)).
Deuxièmement, ils réduisent la composition des fonctions en obligeant le développeur à mettre en place et à traiter les variables qui reçoivent les valeurs de sortie. C'est une cérémonie ennuyeuse. Vous ne pouvez pas composer des expressions en les utilisant avec une quelconque facilité. Par conséquent, le code faisant appel à ces fonctions se transforme rapidement en un grand désordre impératif, offrant de nombreux endroits où les bogues peuvent se cacher.