я работаю над игрой, где это будет возможно предназначаться конечностями каждого моба специально, чтобы вы могли стремиться к голове, ноги, ...Перебора структуры родителя/ребенок
У меня есть это конструктор:
public Humanoid(Race race, Gender gender, string firstname, string lastname = null)
{
this.Legs = new List<Leg> { new Leg(), new Leg() };
this.Torso = new Torso();
this.Arms = new List<Arm> { new Arm(), new Arm() };
this.Heads = new List<Head>
{
new Head
{
Ears = new List<Ear> { new Ear(), new Ear() },
Eyes = new List<Eye> { new Eye(), new Eye() }
}
};
}
Все эти конечности наследуются от интерфейса ILimb
.
Каков наилучший способ прорезать все конечности, включая детские (если применимо)?
Я могу добавить protected List<ILimb> { get; set; }
, а затем добавить каждый, но это избыточно.
Любые идеи или предложения по улучшению?
Я бы использовал библиотеку 'System.Reflection' с пользовательскими атрибутами. пометьте свои конечности некоторым атрибутом, затем используйте библиотеку отражения, чтобы получить свойства Humanoid, а затем отфильтруйте этот список на основе пользовательских атрибутов. то у вас есть список всех ваших '' ILimb'', которые вы можете перебирать через https://msdn.microsoft.com/en-us/library/a4a92379(v=vs.110).aspx –
Конкат «Ноги» и 'Arms' вместе и прокрутите их. –
@MattBurland: Как вы относитесь к concat? – Spikee