public char GenerateMember(Chooser chooser, BinaryDecisionDiagram bdd) { var num = 0; for (var index = 0; index < BitLength; ++index) { if (index < bdd.Ordinal) { num |= chooser.ChooseBoolean() ? _bitMaps[index] : 0; } else if (bdd.FalseCase == BinaryDecisionDiagram.False) { num |= _bitMaps[index]; bdd = bdd.TrueCase; } else if (bdd.TrueCase == BinaryDecisionDiagram.False) { bdd = bdd.FalseCase; } else if (chooser.ChooseBoolean()) { num |= _bitMaps[index]; bdd = bdd.TrueCase; } else { bdd = bdd.FalseCase; } } return((char)num); }