当我进入mscolib.dll
程序集时,我发现Int32是一个结构体,但我不知道为什么我们可以将“=”运算符应用于Int32,就像这个Int32 num=5;
一样。它不会超载Int32结构中的“=”运算符。
答案 0 :(得分:1)
=
运算符无法重载。见Overloadable Operators。 =
运算符始终将右侧的值分配给左侧的变量。
对于值类型(struct),这意味着将整个值复制到变量中。
对于类似Int32
的类型,处理器中有内置指令可以进行复制。对于那么大的结构,没有可以一次复制整个值的指令,就会有一个循环将结构中的字节复制到变量中。