Sae*_*ani 5 c# string formatting char
我有以下类作为DataSourceListBox:
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 + "'";
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,默认情况下这将使用Valuejust作为添加到字符串的常规字符,例如,如果我Tab像这样定义此类:
var TabSeparator = new SeparatorChars {Text = "Tab", Value = '\t'}
Run Code Online (Sandbox Code Playgroud)
字符串表示将是:
Tab ' '
Run Code Online (Sandbox Code Playgroud)
但我需要它
Tab '\t'
Run Code Online (Sandbox Code Playgroud)
这该怎么做?!
无可否认地从这篇文章中扯掉并且未经测试.
public override string ToString()
{
return ToLiteral(Text + " '" + Value + "'");
}
private string ToLiteral(string input)
{
var writer = new StringWriter();
CSharpCodeProvider provider = new CSharpCodeProvider();
provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
return writer.ToString();
}
Run Code Online (Sandbox Code Playgroud)