Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中转义变量?_C#_String_Variables_Escaping - Fatal编程技术网

如何在C#中转义变量?

如何在C#中转义变量?,c#,string,variables,escaping,C#,String,Variables,Escaping,我想知道你到底是怎么了 这种代码的和平?我的意思是如何逃跑 从字符串中提取变量(用C#表示)?(如果我正确理解了逃跑是什么。) 我想键入一个制表符并插入新行(我知道可以直接在WriteLine中写入\n和\t,但我假设我们想从用户处获取特殊字符) 提前谢谢。☺ 这样保留反斜杠会使其成为“无法识别的转义序列”,因此您需要使用第二个反斜杠使其无效或“转义”,从而生成最终代码: int i; string x; for(i=0;i<10;i++) { x= @"\u00A" + i; //if

我想知道你到底是怎么了 这种代码的和平?我的意思是如何逃跑 从字符串中提取变量(用C#表示)?(如果我正确理解了逃跑是什么。)

我想键入一个制表符并插入新行(我知道可以直接在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);
}
int i;
string x;
for(i=0;i<10;i++)
{
    x="\\u00A" + i;
    Console.WriteLine(x);
}
inti;
字符串x;

对于(i=0;iUnicode转义序列需要4位数字:

for(var i = 0; i < 10; i++)
{
  var x="\u000A"+i; // notice 3 zeros
  Console.WriteLine(x);
}
for(变量i=0;i<10;i++)
{
var x=“\u000A”+i;//注意3个零
控制台写入线(x);
}
注释

  • 通常您会使用
    “\n”
    作为新行(甚至是
    控制台。Write(“\n”+i);
  • 向字符串中添加整数(或任何其他值)会自动调用
    .ToString
    ,以便您可以向字符串中添加任何对象。通常,最好使用
    string.Format(“\n{0}”,i);
    而不是
    +
    ,以提供更灵活/可读的格式(添加许多字符串-有更好的方法-搜索)
  • 如果要将带有代码的字符写入特定整数值(如32是空格),则应将其强制转换为
    char
    x=“\u000A”+(char)i
    -还应选择可打印范围(如32-42)

欢迎来到SO。你做过哪些研究?这个问题可以说是一个基本问题,最好读一本欢迎来到c#的书或教程。欢迎来到Stack Overflow!请你的问题指出你期望的
x
是什么,以及这与转义有什么关系。搜索到的@Ali是“Unicode表”您的实际目标是什么?很可能您完全误解了字符串的“escape”含义,因为如果生成稍后将被编译的C#(或Java/C/C++/JavaScript)代码,您的最后一行将非常有用……字符串由
'\\'
't'
(2个字符,请注意,在C中表示\需要转义)与
'\t
-代码为9的单个字符非常不同。是的,我可能误解了它。顺便说一句,我想象了一个这样的程序:“Console.WriteLine(\nHello”);string s=Console.ReadLine();string sp;switch(s){case“t”:{sp=“\t”;break;}case“e”:{sp=“\n”;break;}case“u”:{Console.Write(“键入您的unicode号码”);string st=Console.ReadLine();sp=char.ConvertFromUtf32(int.Parse(st,System.Globalization.NumberStyles.HexNumber));break;}默认值:{sp=“Error”;break;}}Console.Write(sp);Console.Write(“您!”;“无需担心。我想,现在很少有人使用控制台(我在学习C#,这个问题突然出现了)。谢谢。哦,我想这是被误解了。我想要unicode字符而不是ascii。例如00A9=?和00A5=¥不需要在这里说谢谢=)但是你很受欢迎。
for(char C=0xa9;C<0xb5;C++)
会简单得多…但不是OP要求的。。。(@Ali-很乐意解释为什么你不能用simple
来处理
)实际上我可以,但我的目的是在一个像“\MyVariable”这样的变量后面使用一个变量,我们从用户那里得到了它,例如“MyVariable=n;”,而C似乎不可能首先编译代码(是吗?)(但是也可以像这样从用户处获取'MyVariable=“\n””,但它实际上不再在反斜杠后使用变量)@Ali不,这是不可能的…编译器(虽然是一个很好的软件,但没有那么智能)如何区分这些情况…转义序列被视为一个字符,即“/n”是一个换行符,“\t”是一个制表符。没有办法,这完全没问题。你有这么多函数,让字符串的使用变得简单,所以总会有解决办法。
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);
int i;
string x;
for(i=0;i<10;i++)
{
    x="\\u00A" + i;
    Console.WriteLine(x);
}
for(var i = 0; i < 10; i++)
{
  var x="\u000A"+i; // notice 3 zeros
  Console.WriteLine(x);
}