c#中的Char指针等价

Char pointer equivalent in c#

本文关键字:指针 Char 中的      更新时间:2023-10-16

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

C#char *的等价物是什么,我用byte[]还是[MarshalAs(UnmanagedType.LPStr)] StringBuilder,并告诉我C++C#char的等价物是byte还是string ?

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

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

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

不能正确理解问题,但c#也有Char类型http://www.dotnetperls.com/char

这取决于:

  1. char *ptr应替换为string,如果它作为一个字符串
  2. 如果重要的是其中的值并在[-127,128]之间绑定其范围,则使用char[]byte[],例如char[] array1 = { 'b', 'c', 'a' };