J'ai passé un peu de temps refactorisation mon code C#, et je suis frappé par la taille de mes listes de paramètres OBTIENNENT pour les variables locales, surtout quand vous commencez à recevoir plusieurs niveaux de profondeur et doivent transmettre les variables locales de plus haut dans la pile des appels. Par exemple, j'ai un code assez complexe qui utilise Linq to sql. J'instancie un contexte de données au début d'une procédure et l'utilise tout au long de la procédure. Cependant, après refactoring, je trouve que je passe ce DC à travers toutes mes sous-méthodes, ainsi que diverses autres variables d'état. Une solution, bien sûr, consiste à transformer ces variables locales en variables membres, mais cela rend la classe entière inoffensive, et quand il s'agit d'entrées/sorties asynchrones, cela signifie que les choses sont verrouillées avec des verrous et des mutex. sûr. Quelles sont vos meilleures pratiques en matière d'affacturage en ce qui concerne les variables locales?les meilleures pratiques pour refactorisation avec des variables locales
Est-ce que vous cédez et en faites des membres? ou transportez-vous autour des bagages d'état? Ou faites-vous autre chose?
EDIT: Je ne suis pas sûr de ce que plus de détails dont vous avez besoin. Je ne veux pas jeter un tas de code, parce que c'est pour illustrer cela que je dois montrer un ensemble de procédures très complexes.
J'ai un certain nombre de variables locales, comme un Linq à Sql DC, diverses étapes de traitement, diverses étapes de mises à jour de beaucoup de données brutes traitées et écrites dans une base de données.
je pensé à créer un contexte d'état et en passant, mais il semble un peu hackish pour moi, même si je suppose que ce précisément ce que l'LINQ to SQL est dc.