嗨,我有一个抽象类Item。食物,武器等类继承这个类。有关这些项目的所有信息都存储在数据库中,C#代码的工作与确切的类匹配,并通过Enum进行匹配,Enum也以整数形式存储在数据库列中。我的问题是这个愚蠢的代码,无论我不得不使用,武器等类enum匹配类
if ((ItemType)userItem.ItemType == ItemType.Food)
{
Food food = new Food(userItem);
food.UseItem(sender);
}
else if ((ItemType)userItem.ItemType == ItemType.Weapon)
{
Weapon weapon = new Weapon(userItem);
weapon.UseItem(sender);
}
在食品的构造函数的参数食品的方法,武器等类是从数据库中的对象,让了解它的领域对象。
是否有些东西可以帮助我在没有此代码的情况下匹配这些类型?当我看着它时真的让我很烦恼。
尝试看看,可能会有帮助 http://stackoverflow.com/questions/43278791/polymorphic-object-creation-without-if-condition/43279301# 43279301。主要想法是通过结构创建对象,然后调用项目的polimorfic方法 – gabba