ВАЖНО:
Ответы, определяющие оценку, безусловно, правильны с точки зрения того, что делает +=
, на общих языках. Но в VB.NET я предполагаю, что X
, указанное в OP, является переменной или свойством.
Они, вероятно, будут компилироваться в один и тот же IL.
ОБНОВЛЕНИЕ (для устранения вероятного противоречия):
VB.NET - это спецификация языка программирования. Любой компилятор, который соответствует тому, что определено в спецификации, может быть реализацией VB.NET. Если вы отредактируете исходный код компилятора MS VB.NET, чтобы сгенерировать дрянной код для случая X += 1
, вы все равно будете соответствовать спецификации VB.NET (поскольку в ней ничего не сказано о том, как она будет работать. Это просто говорит, что эффект будет точно таким же, что логично генерировать тот же код, действительно).
Хотя компилятор очень и очень вероятно (и я чувствую, что это действительно так) генерирует один и тот же код для обоих, но это довольно сложная часть программного обеспечения. Черт возьми, вы даже не можете гарантировать, что компилятор генерирует точно такой же код, когда один и тот же код компилируется дважды!
Что вы можете сказать на 100% безопасно (если вы не знаете исходный код компилятора), это то, что хороший компилятор должен генерировать такой же код с точки зрения производительности , который может или не может быть быть точно таким же кодом .