ICReg ChooseFromMulti(ICRegMulti multiRegistration, bool frozen) { if (_multiBinds != null) { var reg = _parent.ChooseFromMulti(multiRegistration, true); if (reg != null) return reg; foreach (var multiBind in _multiBinds) { if (multiBind.Key == multiRegistration) { return multiRegistration.Regs.Skip(multiBind.Value).First(); } } if (!frozen) { _multiBinds.Add(new KeyValuePair<ICRegMulti, int>(multiRegistration, 0)); return multiRegistration.Regs.First(); } } return null; }
ICReg?ChooseFromMulti(ICRegMulti multiRegistration, bool frozen) { if (_multiBinds != null) { var reg = _parent !.ChooseFromMulti(multiRegistration, true); if (reg != null) { return(reg); } foreach (var multiBind in _multiBinds) { if (multiBind.Key == multiRegistration) { return(multiRegistration.Regs.Skip(multiBind.Value).First()); } } if (!frozen) { _multiBinds.Add(new KeyValuePair <ICRegMulti, int>(multiRegistration, 0)); return(multiRegistration.Regs.First()); } } return(null); }