假设我有一个叫做的类Composite,它包含另一个类的集合Component,所有这些类都有一个属性Name.使用a Dictionary来存储组件会更好吗,或者使用动态对象会更好吗?
例如,这样做会更好:
Component component = someComposite.Components["RandomComponent"];
或者:
Component component = someComposite.Components.RandomComponent;
其中someComposite.Components dynamic在第二个例子中.
第二种情况似乎更好,但没有类型安全......
我想补充一点,在某些时候我最终会这样做:
DerivedComponent component = someComposite.Components["RandomComponent"] as DerivedComponent;
在这种情况下dynamic可以节省我输入转换.
那么哪个更好的设计呢?
也许这只是我,但我认为dynamic更多是处理COM互操作和与IronPython等动态语言交互的便捷方式.dynamic不应该真正用于全C#程序.
使用Dictionary <string,Component>.
并查看System.ComponentModel(即IContainer和IComponent接口).
| 归档时间: |
|
| 查看次数: |
2709 次 |
| 最近记录: |