在C#中为什么(char)(1)+(char)(2)导致int 3

萨卡

我试图将一些VB.NET代码隐藏到C#中,并发现了这个有趣的东西。添加两个字符在VB.NET和C#中返回不同的结果。

VB.NET -返回字符串

Chr(1) & Chr(2) = "  "

C# -返回int

(char)(1) + char(2) = 3

如何在C#中添加(连接)两个字符?

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

在C#中,char是16位数字类型,因此+表示加法,而不是串联。因此,当您添加ab获得时a+b此外,此添加的结果是一个int请参阅快速演示)。

如果通过“添加两个字符”来表示“串联”,那么在应用运算符之前将它们转换为字符串+将是一种选择。另一个选择是使用string.Format,例如:

string res = string.Format("{0}{1}", charA, charB);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么使用字符串会导致退出代码3而使用char []没有

为什么在C语言中(char)+(char)=(int)?

为什么char数组在控制台中显示内容,而string和int数组在c#中却不显示?

C#和Java:3/2 * 3.2 = 3.2,为什么?

为什么(1 == 2!= 3)在Python中评估为False?

为什么'(int)(char)(byte)-2'在Java中产生65534?

为什么我需要将int减去char才能得到正确的结果?C#

为什么SQL中的CHAR(1)占用1个字节,而Java中的char占用2个字节?

R:为什么“ identical(c(1:3),c(1、2、3))”是假的?

为什么使用char **会导致char *工作的段错误?

为什么在C语言中char是1字节

为什么C ++ Char数组大小增加1

在C ++中,为什么在此程序中,每个const char *都为空,每个int都为0?

为什么要返回这个值?C ++ int / char混淆

C与C#或JAVA中char的区别是什么

((short *)((((char *)(&arr[1]))+8))[3]=100; 有什么作用?

为什么在C ++中不将char当作数字?

在SQL中将CHAR转换为int会导致错误

为什么3-1 * 8 + 2 * 3等于1

为什么-3 >> 1等于-2?

C ++中的重载函数为unsigned char和unsigned int导致模棱两可

为什么char *和int *表现不同

从char到int的转换:为什么(int)givenString.charAt(2)给出48,且namedString =“ 11001”?

为什么char数组的alignof总是1?

为什么在JavaScript中[1,2] + [3,4] =“ 1,23,4”?

为什么布尔表达式“(1,2,3)== True中的1”为False?

如何将 char(例如 "[1, 2, 3]" )转换为列表(例如 [1, 2, 3])

为什么“ int i =(字节)+(char)-(int)+(long)-1”为1?

如果b = [1,2,3,4],而c = [... b],为什么b不等于c?