Скажем, у меня есть класс под названием Composite
, который содержит коллекцию другого класса Component
, все из которых имеют свойство Name
. Было бы лучше использовать Dictionary
для хранения компонентов, или было бы лучше использовать динамический объект.Dynamic vs Dictionary [C#]
Например, было бы лучше сделать это:
Component component = someComposite.Components["RandomComponent"];
или это:
Component component = someComposite.Components.RandomComponent;
Где someComposite.Components находится во втором примере dynamic
.
Второй случай, кажется, лучше, но нет тип безопасности ...
Я хочу добавить, что в какой-то момент я в конечном итоге делает это:
DerivedComponent component = someComposite.Components["RandomComponent"] as DerivedComponent;
В этом случае dynamic
может сохранить я печатаю конверсию.
Так какой из них лучше?
Это больше похоже на это - спасибо за объяснение. – YellPika