(Вопрос может не иметь достаточного смысла. Его было сложно написать. Не стесняйтесь обновлять его, если вы можете сделать его более понятным.)
У меня есть перечисление:
public enum nodeTypes
{
Part = 1,
SelectListValue,
MultiSelectListValue,
RepeatingPart,
...
}
И метод с регистром коммутации:
switch (type)
{
case nodeTypes.SelectListValue:
GenerateSubNode<SelectListValue>(parent, root, depth, true);
break;
case nodeTypes.MultiSelectListValue:
GenerateSubNode<MultiSelectListValue>(parent, root, depth, true);
break;
case nodeTypes.Part:
GenerateSubNode<Part>(parent, root, depth, true);
break;
case ....
}
И еще один метод:
private void GenerateSubNode<ComponentType>(Container parent, ZForm root, int depth, bool isContainer) where ComponentType : Component, new()
{
...
var c = new ComponentType();
...
}
Есть ли способ записать этот оператор регистра коммутатора в виде 1 строки?Это похоже на повторяющийся код.