Cud*_*nny 2 .net c# collections set
我想要的是一个由他们的类引用的对象的唯一集合或集合.该集合只能包含给定类的一个对象.以下是一些可能的功能示例:
class A;
class B;
class C;
A a = new A();
B b = new B();
C c = new C();
UnknownCollection<object> objects;
objects.Add(A, a); // Add(key, value)
objects.Add(B, b);
objects.Add(C, c);
var something = objects[A]; // return a reference to 'a' using class A as a key
Run Code Online (Sandbox Code Playgroud)
如果这些行中的某些内容尚不存在,是否可以创建一个具有合理性能的方法?
听起来你真的想要一个Dictionary<Type, object>你填充的:
objects.Add(typeof(A), a);
objects.Add(typeof(B), a);
objects.Add(typeof(C), a);
...
A a = (A) objects[typeof(A)];
Run Code Online (Sandbox Code Playgroud)
如果字典始终将类型映射到该类型的实例,则可以封装该类型,以便保持API清洁.您总是知道强制转换是可行的,因为唯一可以添加到字典的代码可确保该类型始终正确.
编辑:啊哈 - 事实证明我在2008年发表了关于此的博客.
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |