значение «+ =» - PullRequest
       10

значение «+ =»

4 голосов
/ 22 марта 2010

Я запутался с синтаксисом C #: какой смысл использовать "+ ="?

Ответы [ 4 ]

30 голосов
/ 22 марта 2010

Синтаксис += может использоваться по-разному:

SomeEvent += EventHandler;

Добавляет обработчик к событию.


SomeVariable += 3;

эквивалентно

SomeVariable = SomeVariable + 3;
6 голосов
/ 07 апреля 2010

Это называется составным оператором. Они являются общими для всех языков, которые я могу использовать: Javascript, C, Java, PHP, .net, GL.

Как все говорили, это сокращенная версия value = value + 3.

Существует несколько причин его использования. Очевидно, что быстрее писать, легче читать и быстрее выявлять ошибки.

Самое главное, составной оператор специально разработан так, чтобы не требовать столько вычислений, сколько эквивалентный value = value + 3. Я не совсем уверен, почему, но доказательства имеют первостепенное значение.

Просто создайте цикл с циклом, скажем, 5 000 000, добавляя значение по мере продвижения В двух тестовых примерах, я лично знаю из Actionscript, при использовании составных операторов скорость увеличивается примерно на 60%.


У вас также есть эквивалент:

+=: добавление

-=: вычитание

/=: умножение

*=: умножение

%=: модуль

и менее очевидные:

++: плюс один

--: минус один

5 голосов
/ 22 марта 2010
a += 3

совпадает с

a = a + 3
0 голосов
/ 25 апреля 2010

Обратите внимание, это не обязательно всегда эквивалентно.

для обычных переменных, a+=a, действительно, эквивалентно a=a+a и короче !. Для нечетной переменной, которая меняет свое состояние, не так много.

...