SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Munchkin the Teddy Bear

    Munchkin the

    30 EYLÜL 2011
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006
  • Stevie

    Stevie

    2 Mayıs 2010