c#中的char指针等价

时间:2013-04-01 10:56:14

标签: c# c++ .net

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

char *C#的等效内容是什么,我是否使用byte[][MarshalAs(UnmanagedType.LPStr)] StringBuilder,并告诉我char的等效内容是否来自C++ 1}}到C#byte还是string

3 个答案:

答案 0 :(得分:1)

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

但是在C / C ++中,char *也可以是输出参数,例如在sprintf函数中。在这种情况下,StringBuilderbyte[]将是等效类型,具体取决于参数的含义。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

取决于:

    如果
  1. char *ptr充当字符串,则应将其替换为string 容器(如c中常用的那样)。
  2. 如果重要的是它的价值,并在[-127,128]使用char[]byte[]之间限制其范围,例如char[] array1 = { 'b', 'c', 'a' };