读书人

怎么使函数返回的为一个动态类型除了

发布时间: 2012-01-11 22:28:46 作者: rapoo

如何使函数返回的为一个动态类型,除了用object
比如我有三个类
Class A
{}

Class B:A
{}

Class C:A
{}

我想在A里面写一个静态方法。B,C去继承它。这个方法如果B继承就返回B,A继承就返回A。函数体基本一样,假设B调用,那么这个函数可能如下
public static B function (int i)

B a=(B)session.查询方法( "from B where B.Id= ' "+i+ " ' ")..;
return a;

若C调用,则函数可能如下:
public static C function (int i)
{
C a=(C)session.查询方法( "from C where C.Id= ' "+i+ " ' ")..;
return a;
}


[解决办法]
可以用泛型

参考一下这里 http://www.cnblogs.com/yyw84/archive/2006/10/27/542328.html

[解决办法]
你可以增加多一层,为你的抽象类定义一个默认的类,实现所有方法的默认实现。
所有的方法区继承这个默认的类就行了,需要重写的才重写
100个表,想实现100个不同的功能,当然要写100个实现的啦
如果都有默认的实现方法,可以按照上面所说

读书人网 >C#

热点推荐