【发布时间】:2012-09-26 15:08:03
【问题描述】:
我需要保存允许执行某些操作的对象类型列表。
示例 Animal 有 3 个后代 Tiger、Human、Hippo
我只想让Tigers 和Hippos 被关在动物园的笼子里?我需要一份动物类型列表。
我会喜欢比List<Type>更好的东西
这只是一个简化的例子。我不喜欢笼子里的动物..
编辑
因为不清楚。我想在列表中保存对象类型而不是实际对象。
例子:
List<Type> types = new List<Type>();
types.Add(typeof(Hippo));
types.Add(typeof(Tiger));
这是程序员可以做的限制types.Add(typeof(Human)),这是我不想反对的。
edit2
只是为了澄清我的问题。我希望能够动态地 Register 允许的类型,并且没有后续的 ifs 作为下面的一些答案。
【问题讨论】:
-
I want to allow only Tigers and Hippos to be held in zoo cages这对我来说太寓言了。你能给出一个你想要做什么的代码示例吗? -
我猜你可以拥有 Animal 的 ZooAnimal 后代,并且只继承 Tiger 和 Hippo,然后拥有 List
? -
List<Type>有什么问题? -
在列表
中允许任何类型。我想限制它 -
@Veli 我不想要对象实例,而是列表中的对象 Types
标签: c# oop list inheritance