Чтобы внести изменения в переменную вашего экземпляра 'member', вам нужно установить ее полностью. Вы должны сделать что-то вроде:
SomeType mem = t.member;
mem.a = 10;
t.member = mem;
Проблема в том, что t.member
используется в качестве "получателя" (поскольку за ним сразу не следует '='), поэтому t.member.a = 10;
совпадает с [t member].a = 10;
Это ничего не даст, потому что [t member]
возвращает структуру, которая является "r-значением", т.е. значение, которое допустимо только для использования в правой части назначения. У него есть значение, но пытаться изменить это значение бессмысленно.
По сути, t.member
возвращает копию вашей структуры 'member'. Затем вы немедленно изменяете эту копию, и в конце метода эта копия отбрасывается.