2012-01-03 20 views
5

Mam następujące klasy jako DataSource dla ListBox:Reprezentowanie Char o równoważnym ciąg

class SeparatorChars 
{ 
    /// <summary> 
    /// Text to describe character 
    /// </summary> 
    public string Text { get; set; } 

    /// <summary> 
    /// Char value of the character 
    /// </summary> 
    public char Value { get; set; } 

    /// <summary> 
    /// Represent object as string 
    /// </summary> 
    /// <returns>String representing object</returns> 
    public override string ToString() 
    { 
     return Text + " '" + Value + "'"; 
    } 
} 

Problemem jest to domyślnie użyje Value tak regularny charakter dodany do łańcucha, na przykładem gdybym określić tę klasę dla Tab tak:

var TabSeparator = new SeparatorChars {Text = "Tab", Value = '\t'} 

znaków reprezentujący będą:

Tab '  ' 

Ale muszę go mieć

Tab '\t' 

Jak to zrobić ?!

+0

'\ t' jest znakiem tabulacji. Wygląda na to, że dostajesz kartę między '' '. Wygląda mi dobrze. Czy czegoś brakuje? Dlaczego chcesz wypisać ciąg '\ t'? – Oded

+0

Rzecz polega na tym, że chcę, aby metoda ToString wyświetlała \ t zamiast zwykłej karty. –

+0

Następnie nie używaj znaku tabulacji, ale ciąg '\ t'. – Oded

Odpowiedz

6

Wprawdzie zgrywanie głównie z this post i niesprawdzone.

+0

Hmmm dziękuję, to działa jakoś ... reprezentacja dla tabulacji jest teraz "Tab" \ t \ "" Wygląda na to, że wszystko jest uniknięte: P –

+0

@ Sean87: Co jeśli użyjesz go w ten sposób: 'return ToLiteral (Value.ToString()); '? (Testowałem sam, ale niedługo wyjdę do pracy i na skrzynkę linuxową). –

+0

Myślę, że to będzie to samo, ponieważ zostanie ono automatycznie przetłumaczone na stringi ... to znów będzie "TAAAAAB! "zamiast" \ t ' –