No .NET eu posso fornecer literais de ambos \r
ou de \n
string, mas existe uma maneira de inserir algo como caractere especial "nova linha" como Environment.NewLine
propriedade estática?
c#
.net
line-breaks
Captain Comic
fonte
fonte
Respostas:
Bem, opções simples são:
string.Format
:Concatenação de string:
Interpolação de string (em C # 6 e acima):
Você também pode usar \ n em qualquer lugar e substituir:
Observe que você não pode tornar essa string constante , porque o valor de
Environment.NewLine
estará disponível apenas no tempo de execução.fonte
Environment.NewLine
? Muito pelo contrário, é uma boa prática para usá-loSe você quiser uma string const que contenha Environment.NewLine, poderá fazer algo assim:
EDITAR
Como isso está em uma string const, isso é feito em tempo de compilação; portanto, é a interpretação do compilador de uma nova linha. Não consigo encontrar uma referência que explique esse comportamento, mas posso provar que funciona como pretendido. Compilei esse código no Windows e no Ubuntu (com Mono) e depois desmontei e estes são os resultados:
Como você pode ver, no Windows as novas linhas são interpretadas como \ r \ n e no Ubuntu como \ n
fonte
fonte
first + Environment.NewLine + second
que é mais eficiente e (IMO) mais fácil de ler?String.Format
produziria 1 string de uma só vez (mas é internamente um pouco lento por causa de concatenações específicas da cultura, etc.), enquanto a concatenação de strings - 1 resultante + 1 temporária, certo?String.Concatenate
, que constrói diretamente apenas uma cadeia de saída (IIRC, se as cordas são literais a concatenação é feito no compilador."a"+b+"c"+d
, etc) por desempenho são iguais a uma única? Ou apenas convertido paraString.Concatenate(a,b,c,d,etc)
, certo?string.Format
no comentário. A concatenação de cadeias não produzirá cadeias temporárias, porque o compilador chamarástring.Concat(first, Environment.NewLine, second)
.Mais uma maneira de posicionamento conveniente de Environment.NewLine na cadeia de formatação. A idéia é criar um método de extensão de string que formate a string normalmente, mas também substitui {nl} no texto por Environment.NewLine
Uso
Código
Nota
Se você deseja que o ReSharper destaque seus parâmetros, adicione atributo ao método acima
[StringFormatMethod ("formato")]
Esta implementação é obviamente menos eficiente do que apenas String.Format
Talvez alguém que esteja interessado nesta questão também esteja interessado na próxima pergunta: Formatação de string nomeada em C #
fonte
fonte
fonte
Environment.NewLine
- veja as outras respostas.const string
versões mais recentes do .net permitem que você use $ na frente do literal, o que permite usar variáveis dentro da seguinte maneira:
fonte
Se você realmente deseja que a string New Line seja uma constante, faça o seguinte:
O usuário da palavra-chave somente leitura em C # significa que essa variável pode ser atribuída apenas uma vez. Você pode encontrar a documentação aqui . Permite a declaração de uma variável constante cujo valor não é conhecido até o tempo de execução.
fonte
Eu gosto mais do "caminho pitonico"
fonte
Se você estiver trabalhando com aplicativos da Web, tente isso.
fonte
Se eu entendi a pergunta: Casal
"\r\n"
para obter essa nova linha abaixo em atextbox
. Meu exemplo funcionou -Uma resposta típica pode estar
s1
s2
notext box
estilo de tipo definido usando.fonte
Aqui, Environment.NewLine não funcionou.
Eu coloquei um " < br / > " em uma string e trabalhou.
Ex:
fonte