Ответ 1
Он просто присваивает одно и то же значение дважды - один раз - myVar
и один раз - myComplexType.myType
.
Это эквивалентно
var tmp = new MyType();
myVar = tmp;
myComplexType.myType = tmp;
(В некоторых сложных случаях могут происходить преобразования типов, но я не ожидаю, что в этом конкретном случае они будут.)
Конечно, вам не нужно использовать дополнительную локальную переменную. Этот код "несколько эквивалентен", но включает чтение из myVar
, поэтому он не совсем эквивалентен, но скорее всего будет тем, что вы будете использовать:
myVar = new MyType();
myComplexType.myType = myVar;
Нет конкретного имени для этого, и относительно редко использовать результат назначения в другом месте выражения, причем наиболее распространенным примером является:
string line;
while ((line = reader.ReadLine()) != null)
{
...
}