3

我试图找到+=inreflector以了解它们是如何实现的:

a=+1对比a=a+1

但我找不到它。

有什么帮助吗?

4

2 回答 2

4

如果您指的是+=forint和其他内置数字类型:将不会有库函数可供查看。编译器可以将它们直接翻译成 IL 指令。

你可以试试这个DateTime结构,也许Decimal也可以。

于 2012-04-19T07:58:34.677 回答
4

该运算符在任何地方都没有实现+=,它是一个由编译器处理的伪运算符。C# 编译器扩展a += 1a = a + 1.

然后,JIT 编译器创建最有效的代码来执行a = a + 1. 如果它是一个简单的变量,它将只是一个增加值的指令。

于 2012-04-19T08:01:06.453 回答