我试图解析c#中的文件,该文件具有由ascii字符代码0,1和2分隔的字段(字符串)数组(在Visual Basic 6中,您可以使用Chr(0)或Chr(1)等生成这些数据)
我知道对于c#中的字符代码0,您可以执行以下操作:
char separator = '\0';
Run Code Online (Sandbox Code Playgroud)
但这对字符代码1和2不起作用?
VB有几个本机函数,用于将char转换为ASCII值,反之亦然 - Asc()和Chr().
现在我需要在C#中获得等效的功能.什么是最好的方式?
我试图找到我的问题的明确答案,它不是网站上任何其他问题的重复.在SO和其他几个网站上,我已经阅读了很多关于此的帖子和相关问题.例如,这是一个关键答案(许多其他人被标记为dulpicates并重定向到这个):在C#中VB的Asc()和Chr()函数的等价物是什么?
我正在将VBA宏转换为C#.在VBA中chr(7)可以简单地连接到一个string好像chr()会产生一个string.为什么不能在C#中完成?
不幸的是,答案并不清楚,很多时候他们说这是正确的用法:
string mystring=(char)7;
Run Code Online (Sandbox Code Playgroud)
然而它给了我一个编译器错误,因为它不作为一个字符串进行评估.
我不得不用它来使它工作:
string mystring=((char)7).ToString();
Run Code Online (Sandbox Code Playgroud)
这相当于VB Chr()函数,实际上VB中的Chr()计算为字符串.
我的问题是这样的:我总是需要转换char到string明确或有一些情况下,其转换在含蓄?
更新:
Per @ Dirk的答案,这也有效:
string mystring = "" + (char)7;
Run Code Online (Sandbox Code Playgroud)
这并没有减少我的神秘感.如果连接起作用,为什么没有隐式转换?
我希望得到VB Chr()与C#中的等价物之间差异的完整解释.我很感激任何我可以阅读的参考文献,甚至是例子.提前致谢.