我正在将一些VB代码转换为C#。我现在用VB
Dim LineSeparator As Char = Convert.ToChar(10)
Dim DataSeparator As Char = Convert.ToChar(";")
我检查了Watch
窗口中的值,可以看到类似这样的内容
Name Value Type
LineSeparator ""c Char
DataSeparator ";"c Char
我写了类似的C#
陈述
char LineSeparator = Convert.ToChar(10);
char DataSeparator = Convert.ToChar(";");
但手表显示的结果不同。像这样的东西
LineSeparator 10 '\n' char
DataSeparator 59 ';' char
我在这做什么错?我是否需要在参数周围放置单引号?
答案 0 :(得分:1)
没有结果是正确的,只是调试窗口用来显示C#和VB.NET之间某些常量值的方式不同
代码10的字符是LineFeed字符(不可打印的字符),VB中的调试器不会在双引号之间显示任何内容(但字符在那里)。在C#调试器中,这些不可打印的字符由转义前缀(\)表示,后面跟一些字母定义。
对于分号而言,问题是VB.NET对单个字符和字符串都使用相同的引号。因此,他们添加了字母“c”来表明这是一个char值而不是字符串。相反,C#使用围绕字符常量的单引号