0

我正在将 c++ 代码转换为 c#,而 c++ 中的 char 需要 8 位,而 c# 需要 16 位。我不知道 char*,所以

char *in的等价物是什么C#,我是否使用byte[]or[MarshalAs(UnmanagedType.LPStr)] StringBuilder 并告诉我charfrom C++to的等价物是否C#byteor string

4

3 回答 3

1

对于输入参数,它可以是 astring或 a byte[],具体取决于参数的含义。如果它表示一个字符序列,则使用string. 如果参数是一些任意数据的缓冲区,那么它很可能是一个byte[].

但是在 C/C++ 中,achar *也可以是输出参数,例如在sprintf函数中。在这种情况下, aStringBuilder或 abyte[]将是等效的类型,这再次取决于参数的含义。

关于 C# 中的char数据类型,请记住charC# 中的 a 表示字符,而 C/C++ 的含义更接近byteC# 中的 a。

于 2013-04-01T11:36:59.590 回答
0

无法正确理解问题,但 C# 也有 Char 类型http://www.dotnetperls.com/char

于 2013-04-01T11:08:57.980 回答
0

这取决于:

  1. char *ptrstring如果它充当字符串容器(如 c 中常用的),则应替换为。
  2. 如果重要的是其中的价值并在[-127,128]使用之间限制其范围,char[]或者byte[] 例如char[] array1 = { 'b', 'c', 'a' };
于 2013-04-01T11:31:32.280 回答