Recurso legal. Eu só quero salientar a importância do melhor que o string.format, se não for aparente para algumas pessoas.
Eu li alguém dizendo ordem string.format como "{0} {1} {2}" para corresponder aos parâmetros. Você não é obrigado a solicitar "{0} {1} {2}" em string.format, também pode fazer "{2} {0} {1}". No entanto, se você tiver muitos parâmetros, como 20, realmente deseja sequenciar a sequência para "{0} {1} {2} ... {19}". Se for uma bagunça embaralhada, será difícil alinhar seus parâmetros.
Com $, você pode adicionar parâmetros em linha sem contar seus parâmetros. Isso torna o código muito mais fácil de ler e manter.
A desvantagem de $ é que você não pode repetir o parâmetro na string facilmente, é necessário digitá-lo. Por exemplo, se você está cansado de digitar System.Environment.NewLine, pode executar string.format ("... {0} ... {0} ... {0}", System.Environment.NewLine), mas, em $, você deve repetir. Você não pode fazer $ "{0}" e passá-lo para string.format porque $ "{0}" retorna "0".
Na nota lateral, eu li um comentário em outra tática duplicada. Eu não poderia comentar, então aqui está. Ele disse que
string msg = n + " sheep, " + m + " chickens";
cria mais de um objeto de sequência. Isso não é verdade, na verdade. Se você fizer isso em uma única linha, ele criará apenas uma sequência e será colocada no cache da sequência.
1) string + string + string + string;
2) string.format()
3) stringBuilder.ToString()
4) $""
Todos eles retornam uma sequência e apenas criam um valor no cache.
Por outro lado:
string+= string2;
string+= string2;
string+= string2;
string+= string2;
Cria 4 valores diferentes no cache, porque existem 4 ";".
Assim, será mais fácil escrever código como o seguinte, mas você criaria cinco seqüências interpoladas, conforme Carlos Muñoz corrigiu:
string msg = $"Hello this is {myName}, " +
$"My phone number {myPhone}, " +
$"My email {myEmail}, " +
$"My address {myAddress}, and " +
$"My preference {myPreference}.";
Isso cria uma única sequência no cache, enquanto você tem um código de leitura muito fácil. Não tenho certeza sobre o desempenho, mas estou certo de que a Microsoft irá otimizá-lo se ainda não o estiver fazendo.