Interpolação de strings em C#

Interpolação de strings em C#

A interpolação de strings é um recurso muito útil e expressivo do C# que facilita a criação de cadeias de caracteres dinâmicas. Ao invés de usar métodos como “String.Format” ou concatenar as partes utilizando o operador “+”, a interpolação permite que você insira diretamente expressões em uma string de maneira clara e legível. 

O que é interpolação de strings?

A interpolação de strings no C# é um recurso que permite incorporar expressões dentro de literais de strings. Isso é feito precedendo a string com o caractere “$” e incluindo as expressões dentro de chaves “{}”. O compilador substitui as expressões pelo resultado das mesmas, gerando a string final. Exemplo:

				
					int idade = 25;
string mensagem = $"Eu tenho {idade} anos.";

				
			

Quando você adiciona o símbolo “$” antes das aspas, o compilador entende que o conteúdo dentro das chaves “{}” deve ser tratado como código C#. No exemplo acima, a variável idade é incorporada na string, resultando na saída “Eu tenho 25 anos.” Essa abordagem torna o código mais legível e conciso.

Comparando interpolação de strings com String.Format

Antes do surgimento da interpolação de strings no C#, uma das formas mais comuns de construir cadeias de caracteres dinâmicas era através do método “String.Format”. Embora ambas as técnicas tenham a mesma finalidade, a interpolação de strings oferece algumas vantagens que a tornam uma escolha mais moderna e conveniente.

A principal diferença entre interpolação de strings e “String.Format” é a clareza da sintaxe. Com “String.Format”, você utiliza marcadores numéricos dentro da string e passa os valores correspondentes como argumentos:

				
					int idade = 25;
string nome = "João";
string mensagem = String.Format("Meu nome é {0} e eu tenho {1} anos.", nome, idade);

				
			

Neste exemplo, o método “String.Format” cria a string “Meu nome é João e eu tenho 25 anos.” O marcador {0} é substituído pelo valor da variável “nome”, e o marcador {1} é substituído pelo valor da variável “idade”. Os valores são inseridos nas respectivas posições indicadas pelos números dentro das chaves.

Embora String.Format seja uma solução eficaz para criar strings dinâmicas, ele exige que o desenvolvedor mantenha a correspondência correta entre os índices dos marcadores e os argumentos fornecidos, o que pode ser propenso a erros, especialmente em strings complexas. Além disso, o uso de índices numéricos pode tornar o código menos legível, comparado a alternativas mais modernas, como a interpolação de strings.

Especificando formatos dentro da string

Uma das vantagens da interpolação de strings é a capacidade de especificar o formato de saída das expressões. Isso é especialmente útil para formatação de números e datas. Com ela você pode especificar uma cadeia de caracteres de formato dentro das chaves após a expressão, utilizando o caractere de dois pontos “:” seguido do formato desejado:

				
					double valor = 5934.86;
string mensagem = $"O valor formatado é {valor:C}.";

				
			

No exemplo acima, o formato “C” é utilizado para formatar o número como moeda. O resultado dessa string é “O valor formatado é R$ 5.934,86.”. Outros exemplos de formatos incluem:

N: número com separadores de milhar.

F: número fixo com casas decimais.

P: percentual.

Para datas, você pode usar formatos pré-definidos ou criar formatos personalizados.

				
					DateTime dataAtual = DateTime.Now;
string mensagem = $"Data atual: {dataAtual:dd/MM/yyyy}";

				
			

No exemplo acima, o formato dd/MM/yyyy é usado para exibir a data no formato dia/mês/ano.

Usando o operador condicional ternário ?:

O operador condicional ternário “?:” é uma maneira concisa de expressar uma condição e pode ser usado dentro de uma interpolação de strings. Ele avalia uma expressão booleana e retorna um de dois valores dependendo do resultado. Quando inserida em uma string, toda a expressão ternária deve ficar entre parênteses, da seguinte forma:

				
					bool aprovado = true;
string mensagem = $"Você foi {(aprovado ? "aprovado" : "reprovado")}!";

				
			

Neste exemplo, o operador ternário verifica o valor da variável “aprovado” e, se verdadeiro, insere “aprovado” na string; caso contrário, insere “reprovado”. Como a variável “aprovado” está como true o resultado será “Você foi aprovado!”

Acelere a sua carreira conosco!

Se você é Desenvolvedor .NET Júnior e quer acelerar sua carreira até nível Pleno com salário de R$7k+, ou mesmo busca a primeira vaga, conheça a Mentoria .NET StartClique aqui

Se é Desenvolvedor .NET Pleno ou Sênior e quer virar referência técnica em sua equipe e mercado, com salário de R$10k+, conheça a Mentoria .NET ExpertClique aqui

Conclusão

A interpolação de strings no C# representa uma evolução em relação ao método String.Format, oferecendo uma sintaxe mais intuitiva, flexível e legível. Apesar de String.Format ainda ser útil em alguns casos, a interpolação de strings se destaca como a escolha preferida para a construção de strings dinâmicas no C# moderno, especialmente em situações que exigem código limpo e expressivo.