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