27 Kasım 2008, PERŞEMBE
C dönüştürme# dize değeri kaçan bir dize literal
C#, bir dize, bir dize değeri değişmez ben dönüştürmek, kod olarak görmek istiyorum? Sekme, yeni satır, vb değiştirilmesini istiyorum. onların kaçış dizileri ile.
Eğer bu kod:
Console.WriteLine(someString);
üretir:
Hello
World!
Bu kodu istiyorum:
Console.WriteLine(ToLiteral(someString));
üretmek için:
\tHello\r\n\tWorld!\r\n
CEVAP
27 Kasım 2008, PERŞEMBE
Bunu buldum:
private static string ToLiteral(string input)
{
using (var writer = new StringWriter())
{
using (var provider = CodeDomProvider.CreateProvider("CSharp"))
{
provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
return writer.ToString();
}
}
}
Bu kod:
var input = "\tHello\r\n\tWorld!";
Console.WriteLine(input);
Console.WriteLine(ToLiteral(input));
Üretir:
Hello
World!
"\tHello\r\n\tWorld!"
Bunu Paylaş:
Bir JSON yanıt NodeJS (nesne/dizi dize...
C harfler büyük için dize dönüştürme#...
Sayısal dönüştürme dize...
Neden bir dize ile gidiş-dönüş dönüştü...
Düzenli kaçan tırnak ile tırnak dize i...