用等价的字符串表示一个Char
本文关键字:一个 Char 表示 字符串 | 更新日期: 2023-09-27 18:19:22
我有以下类作为ListBox的DataSource
:
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 + "'";
}
}
问题是,默认情况下将使用Value
作为添加到字符串中的常规字符,例如,如果我为Tab
定义这样的类:
var TabSeparator = new SeparatorChars {Text = "Tab", Value = ''t'}
字符串表示将是:
Tab ' '
但是我需要它是
Tab ''t'
怎么做?!
不可否认,这篇文章的大部分内容都是未经测试的。
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();
}
下面是一篇带有示例代码的博客文章:Mark Gu: c#中的转义序列