C# 10 - Interpolação de strings constantes
Hoje veremos o novo recurso Constant Interpolated Strings do C# 10. |
O novo recurso do C# 10 chamado de Constant Interpolated Strings permite realizar a interpolação de strings constantes definidas com a palavra-chave const.
A palavra-chave const pode ser usada para declarar um campo constante ou uma constante local. Campos e constantes locais não são variáveis e não podem ser modificados. As constantes podem ser números, valores booleanos, cadeias de caracteres ou uma referência nula.
Assim ao usar strings const nas versões anteriores da linguagem C# a concatenação somente podia ser feita com o operador +.
using System;
namespace DemoConst_Interpola
{
class Program
{
public const string Saudacao = "Bem-Vindo ";
public const string Titulo = "Srta. ";
public const string Nome = "Amanda";
public const string Saudacoes = Saudacao + Titulo + Nome;
static void Main(string[] args)
{
Console.WriteLine(Saudacoes);
}
}
}
|
Ao tentar realizar a interpolação de strings usando o operador {$) na linha de código abaixo :
public const string Saudacoes = $"\n{Saudacao}, {Titulo}{Nome} !\n";
Iremos obter o seguinte erro:
Com o C# 10 agora podemos usar o operador de interpolação de strings ($) para combinar strings const.
Assim o código abaixo vai funcionar sem erros:
var teste = new Teste();
teste.Demo();
public class Teste
{
public const string Saudacao = "Bem-Vindo ";
public const string Titulo = "Srta. ";
public const string Nome = "Amanda";
public const string Saudacoes = $"\n{Saudacao}, {Titulo}{Nome} !\n";
public void Demo()
{
Console.WriteLine(Saudacoes);
Console.ReadKey();
}
}
|
Além disso, de acordo com a documentação
oficial da Microsoft, os valores const interpolados
não podem ser numéricos, pois:
"As expressões de espaço reservado não podem ser
constantes numéricas porque essas constantes são convertidas em strings em tempo
de execução."
Portanto, na realidade, esse recurso só funciona com valores de
string const.
E estamos conversados...
"Bem-aventurado
o homem que sofre a tentação; porque, quando for provado, receberá a coroa da
vida, a qual o Senhor tem prometido aos que o amam."
Tiago 1:12
Referências: