我有一个 C++ 应用程序。在该应用程序中,其中一个函数返回 unsigned char
值。我想将该函数转换成 C# 代码,但是我不太了解 C++ 编程。我想知道在 C# 中会对应于 c++ unsigned char 的数据类型是什么。
这个 C++ 函数的样子大致如下:
unsigned char getValue(string s)
{
//SOME CODE HERE
}
在C#中,unsigned char
的等效类型是byte
。
byte getValue(string s)
{
}
第二种选择:如果您使用无符号字符作为字符存储,则应使用char
:
char getValue(string s)
{
}
你必须记住,C++同等地处理字符和8字节的值。因此,在C++中:
'A' + 'B' == 65 + 66 == 65 + 'B' == 'A' + 66
从上下文中需要检查 unsigned char
是字符还是数字。从传递为参数的字符串中可以猜测,该函数处理字符,因此您可能想要一个 char
C# 类型。
byte
类型。此外,此问题 还有其他映射关系,如果您需要的话。char
类型。之所以我们一直建议使用 byte 是因为我们假设您想将该值视为一个 8位
整数。C++ unsigned char = C# byte
C++ char = C# sbyte
char
。在C#中,char
既不是有符号的也不是无符号的,它是一个16位的值。byte
,它是一个无符号整数,就像c++中的unsigned char
一样。char
。如果它将返回字符串中元素的数量,则 byte
应该更好(除了 int
)。 - Martin Mulder