我正在将c ++代码转换为c#,而c ++中的char需要8位,而c#中需要16位。我不知道char *,所以
char *
中C#
的等效内容是什么,我是否使用byte[]
或[MarshalAs(UnmanagedType.LPStr)] StringBuilder
,并告诉我char
的等效内容是否来自C++
1}}到C#
是byte
还是string
?
答案 0 :(得分:1)
对于输入参数,它可以是string
或byte[]
,具体取决于参数的含义。如果它代表一系列字符,则使用string
。如果参数是某些任意数据的缓冲区,那么它很可能是byte[]
。
但是在C / C ++中,char *
也可以是输出参数,例如在sprintf
函数中。在这种情况下,StringBuilder
或byte[]
将是等效类型,具体取决于参数的含义。
关于C#中的char
数据类型,请记住C#中的char
表示字符,其中C / C ++的含义更接近于byte
的含义。 C#。
答案 1 :(得分:0)
无法正确理解问题,但C#也有Char类型http://www.dotnetperls.com/char
答案 2 :(得分:0)
取决于:
char *ptr
充当字符串,则应将其替换为string
容器(如c中常用的那样)。[-127,128]
使用char[]
或byte[]
之间限制其范围,例如char[] array1 = { 'b', 'c', 'a' };