当我研究如何在C#中为ASP.NET项目创建子类时,我感觉非常聪明,然后我发现了一个问题 - 我不知道如何根据SQL查询的结果创建正确子类的对象.
假设您有一个名为Animal的类和两个名为Zebra和Elephant的子类.你明白了吗?
我想要做的是执行一个SQL查询,如果返回的行有行["Type"] ="Zebra"然后加载一个Zebra对象(或者如果它是一个大象然后..).
所以,原则上,Animal类将有一个静态方法:
class Animal{ public static Animal Load(DataRow row){ if (row["Type"]=="Zebra"){ return new Zebra(); } } class Zebra : Animal{ //some code here }
这是完全可能的还是我只是明白了子类的想法是错误的.很明显,我不是OO专家.
先谢谢你,杰克
您可以实现方法工厂模式. http://en.wikipedia.org/wiki/Factory_method_pattern