如何在 C# 中转义变量?

How to escape variables in C#?

我想知道是不是哪里出了问题 这种代码的和平?我是说怎么逃 从字符串变量(在 C# 中)? (如果我没有正确理解转义是什么的话。)

int i;
string s;
for(i=0;i<10;i++)
{
s="\u00A"+i;
Console.WriteLine(s);
}

(其实我是想让程序写成 一系列 unicode 字符,用于取消编码 table,例如 00A9=® 和 00A5=¥。 或者通常我想在反斜杠后使用变量)

为简单起见:

string a,b;
a="t";
b="n";
Console.WriteLine("Hi\{0}All\{1}",a,b);

我想键入一个制表符并插入一个新行(我知道可以直接在 WriteLine 中写入 \n 和 \t,但我假设我们想从用户那里获取特殊字符) 提前致谢。 ☺

int i;
string x;
for(i=0;i<10;i++)
{
x= @"\u00A" + i; //if you want the backslash
// without @ it's x= "\u00A"+i; //so the backslash is escaped
Console.WriteLine(x);
}

编辑

for (int i = 0; i < 10; i++)
{
     Console.WriteLine(
         char
         .ConvertFromUtf32(
             int.Parse("00A"+ i, System.Globalization.NumberStyles.HexNumber)));
}

关于另一个问题,你唯一能做的就是:

string a,b;
a="\t";
b="\n";
Console.WriteLine("Hi{0}All{1}",a,b);

Unicode 转义序列需要 4 位数字:

for(var i = 0; i < 10; i++)
{
  var x="\u000A"+i; // notice 3 zeros
  Console.WriteLine(x);
}

备注

  • 通常您会使用 "\n" 作为新行(甚至 Environemnt.NewLine),例如 Console.Write("\n" + i);
  • 将整数(或任何其他值)添加到字符串会导致自动调用 .ToString,因此您可以将任何对象添加到字符串。通常最好使用 String.Format("\n {0}", i); 而不是 + 来提供更多 flexible/readable 格式(添加许多字符串 - 有更好的方法 - 搜索)。
  • 如果你正在寻找用代码写出特定整数值的字符(比如 32 是 space),你应该将它转换为 charx="\u000A"+(char)i - 你也应该选择可打印范围(如 32-42)。