Je pense que dans la plupart des cas comme cette clarté, et non l'efficacité, devrait être votre plus grande préoccupation. À moins que vous n'écrasiez des tonnes de cordes ou que vous ne construisiez quelque chose pour un appareil mobile moins puissant, cela n'affectera probablement pas beaucoup votre vitesse de course.
J'ai constaté que, dans les cas où je construis des chaînes de manière assez linéaire, faire des concaténations directes ou utiliser StringBuilder est votre meilleure option. Je suggère cela dans les cas où la majorité de la chaîne que vous construisez est dynamique. Étant donné que très peu de texte est statique, le plus important est qu'il soit clair où chaque élément de texte dynamique est placé au cas où il aurait besoin d'être mis à jour à l'avenir.
D'autre part, si vous parlez d'un gros morceau de texte statique contenant deux ou trois variables, même si c'est un peu moins efficace, je pense que la clarté que vous gagnez avec string.Format en vaut la peine . Je l'ai utilisé plus tôt cette semaine lorsque j'ai dû placer un morceau de texte dynamique au centre d'un document de 4 pages. Il sera plus facile de mettre à jour ce gros morceau de texte s'il est en un seul morceau que d'avoir à mettre à jour trois morceaux que vous concaténerez ensemble.