Example #1
0
 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;
 }
Example #2
0
 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);
 }