2009-10-03 7 views
1

D'une part, un tuple est polyvalent, mais d'autre part, peut être moins clair.Modificateurs d'accès sur les méthodes utilisant Tuple en C#

Comme meilleure pratique, ne devrait-on pas utiliser le type retour d'une méthode publique? De même, ne devrait-il pas être utilisé pour le type de tout paramètre d'une méthode publique? En d'autres termes, ne devrait-il être utilisé que dans des déclarations de méthodes protégées, internes et privées?

Répondre

1

Ce problème n'est pas public/privé, le problème est simplement «qu'est-ce qu'une bonne conception d'API». Je pense que vous utiliseriez rarement Tuple dans une API C#, et dans les rares cas où vous l'utilisez, le plus souvent ce serait pour un type de retour (quand vous voulez retourner plusieurs choses). Mais il ne faut pas être trop prescriptif avec des règles trop générales ("Une cohérence stupide ..."); faire la bonne chose pour chaque situation individuelle. Il peut y avoir des cas pour l'utiliser dans les paramètres (en particulier dans certains interop avec d'autres langues).

+0

Merci pour votre réponse, Brian. Pour moi, la distinction entre "public v private" et "what is good API design" est une distinction sans différence, car n'est-ce pas ce que vous déclarez partie publique de votre API (même si pour votre propre consommation)? De toute façon, la fin de votre question, vous allez au cœur de l'affaire ... vous pensez qu'il est "ok" de l'utiliser publiquement dans des situations qui pourraient le justifier, car l'utilité peut finalement gagner sur un code auto-documenté. Pas une opinion à laquelle je suis nécessairement opposé, cependant .. –

1

J'aurais tendance à utiliser les mêmes conseils que je fais pour les types de collection "bruts" comme Dictionary<TKey, TValue> - utilisez quelque chose d'un peu plus fortement typé. À l'intérieur de vos propres méthodes internes, c'est bien, mais utilisez un type plus spécifique au domaine comme valeur d'entrée ou de sortie publique.

+0

+1 c'est ce que je fais. –

Questions connexes