C# 用等效字符串表示字符
我有以下类作为列表框的C# 用等效字符串表示字符,c#,string,formatting,char,C#,String,Formatting,Char,我有以下类作为列表框的数据源: class SeparatorChars { /// <summary> /// Text to describe character /// </summary> public string Text { get; set; } /// <summary> /// Char value of the character /// </summary>
数据源
:
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 + "'";
}
}
字符串表示形式为:
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();
}
\t
是制表符。看起来您在''
之间有一个选项卡。我觉得不错。我错过什么了吗?为什么要输出字符串\t
?问题是,我希望它在ToString方法中显示\t而不是普通的制表符。然后不要使用制表符,而是字符串\t
。不,我需要使用实数字符作为Value属性,因为我要将它传递给另一个类。如果我这样做,例如var comma=new SeparatorChars{Text=“comma”,Value=',}
这就可以了。看看这个问题。被接受的答案可能会对你有所帮助。看起来很像我会采取的方法。。。一个简单的查找表。嗯,谢谢,这在某种程度上是有效的…选项卡的表示现在是“tab\'\t\'
似乎每一次都被转义了:P@Sean87:如果您这样使用它会怎么样:returntoliteral(Value.ToString())代码>?(我会自己测试它,但我马上就要去工作了,在linux机器上)。我想这是一样的,因为它会自动转换成字符串……这将再次是“TAAAAAB!”代码>而不是“\t”确定确定…我必须使用返回文本+“->”+ToLiteral(Value.ToString())。替换(“\”,”);
:P谢谢!
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();
}