Параметры 2 и 3 эквивалентны, и &=
делает именно это.
Вы должны знать, что в случае сбоя первого вызова последующие вызовы могут не произойти: например,
if (x != null && x.Test() == true)
Сначала оценивается x != null
, а если оно ложно, вторая часть не будет выполнена.То же самое может применяться и здесь.
(Ха, интересно, это только для &&, а не & ...)