Exercício – Combinar cadeias de caracteres usando a interpolação de cadeias de caracteres
Embora a concatenação de cadeia de caracteres seja simples e conveniente, a interpolação de cadeia de caracteres está crescendo em popularidade em situações nas quais você precisa combinar muitas cadeias de caracteres literais e variáveis em uma única mensagem formatada.
O que é interpolação de cadeia de caracteres?
A interpolação de cadeia de caracteres combina vários valores em uma única cadeia de caracteres literal usando um "modelo" e uma ou mais expressões de interpolação. Uma expressão de interpolação é indicada por um símbolo de chave de abertura e fechamento { }
. Você pode colocar qualquer expressão C# que retorne um valor entre chaves. A cadeia de caracteres literal se torna um modelo quando ele é prefixado pelo caractere $
.
Em outras palavras, em vez de escrever a seguinte linha de código:
string message = greeting + " " + firstName + "!";
Você pode escrever esta linha de código mais concisa:
string message = $"{greeting} {firstName}!";
Neste exemplo simples, você economiza alguns pressionamentos de tecla. Você pode imaginar como a interpolação de cadeia de caracteres muito mais concisa pode estar em operações mais complexas. Além disso, muitas localizam a sintaxe de interpolação de cadeia de caracteres mais limpa e mais fácil de ler.
No exercício a seguir, você reescreverá as mensagens anteriores usando a interpolação de cadeia de caracteres.
Usar a interpolação de cadeia de caracteres para combinar uma cadeia de caracteres literal e um valor variável
Para interpolar duas cadeias de caracteres juntas, você cria uma cadeia de caracteres literal e prefixa a cadeia de caracteres com o símbolo $
. A cadeia de caracteres literal deve conter pelo menos um conjunto de chaves {}
, e dentro desses caracteres você usa o nome de uma variável.
Selecione todo o código no Editor do .NET e pressione a tecla Delete ou Backspace para excluir.
Insira o seguinte código no Editor do .NET:
string firstName = "Bob"; string message = $"Hello {firstName}!"; Console.WriteLine(message);
Agora, execute o código. Você verá o resultado a seguir no console de saída:
Hello Bob!
Usar a interpolação de cadeia de caracteres com diversas cadeias de caracteres literais e variáveis
Você pode executar várias operações de interpolação na mesma linha de código.
Modifique o código escrito anteriormente para o seguinte:
int version = 11; string updateText = "Update to Windows"; string message = $"{updateText} {version}"; Console.WriteLine(message);
Agora, execute o código. Você verá o resultado a seguir no console de saída:
Update to Windows 11
Evitar variáveis intermediárias
Da mesma forma que você fez no exercício anterior, é possível eliminar a variável temporária para armazenar a mensagem.
Modifique o código escrito anteriormente para o seguinte:
int version = 11; string updateText = "Update to Windows"; Console.WriteLine($"{updateText} {version}!");
Agora, execute o código. O resultado no console de saída deve ser igual, embora você tenha simplificado o código:
Update to Windows 11!
Combinar literais textuais e interpolação de cadeia de caracteres
Suponha que você precise usar um literal textual em seu modelo. Você pode usar o símbolo @
de prefixo literal textual e o símbolo $
de interpolação de cadeia de caracteres juntos.
Exclua o código das etapas anteriores e digite o seguinte código no Editor do .NET:
string projectName = "First-Project"; Console.WriteLine($@"C:\Output\{projectName}\Data");
Agora, execute o código. Você verá o seguinte resultado.
C:\Output\First-Project\Data
Neste exemplo, o símbolo
$
permite que você referencie a variávelprojectName
dentro das chaves, enquanto o símbolo@
permite que você use o caractere\
sem escape.
Recapitulação
Veja o que você aprendeu até agora sobre a interpolação de cadeias de caracteres:
- A interpolação de cadeia de caracteres fornece uma melhoria na concatenação de cadeia de caracteres, reduzindo o número de caracteres necessários em algumas situações.
- Você pode combinar a interpolação de cadeias de caracteres e literais textuais combinando os símbolos para cada um e usando-o como um prefixo para o modelo de cadeia de caracteres.