高手帮忙(c#问题,调用基类方法)

xc_lw 2006-10-26 10:46:35
有两个类A,B都继承于基类BaseClass,想在基类中实现方法ShowMessage();当类A调用时MessageBox.Show(A.P1),B调用时MessageBox.Show(B.P2).这个怎么实现。用泛型能实现吗?如果能实现,怎么实现,请高手指点。
class A:BaseClass
{
public string P1
{
get{...}set{...}
}
}

class B:BaseClass
{
public string P2
{
get{...}set{...}
}
}
class BaseClass
{
//showmessage
}


其实我是想做一个数据访问层,在基类中实现Save,Update和Delete方法。我不想用nhibernate或者其它的第三方工具,就想自己写一个。多多指教。
...全文
190 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xc_lw 2006-10-27
  • 打赏
  • 举报
回复
其实在基类中应该实现两个功能,一个是确实此方法在外部是由哪个具体的类来调用的,另一个是得到具体的类以后,用一种方法遍历其属性(听说用反射可以实现),构建一个Insert 语句,然后执行插入操作.
可是这个反射怎么用呀?大家帮忙呀.NHibernate的插入是怎么实现的呢?
liujia_0421 2006-10-27
  • 打赏
  • 举报
回复
yeerh(边城浪) 正解
flowersea312 2006-10-27
  • 打赏
  • 举报
回复
同意楼上
yeerh 2006-10-27
  • 打赏
  • 举报
回复
class A : BaseClass
{
override void ShowMessage()
{
MessageBox.Show(A.P1);
}
}

class B : BaseClass
{
override void ShowMessage()
{
MessageBox.Show(B.P2);
}
}
class BaseClass
{
virtual void ShowMessage()
{
}
}
yeerh 2006-10-27
  • 打赏
  • 举报
回复
在BaseClass中定义虚方法showmessage,
在A和B中.....override即可
真相重于对错 2006-10-27
  • 打赏
  • 举报
回复
class A:BaseClass
{
public override string P1
{
get{...}set{...}
}
}

class B:BaseClass
{
public override string P1
{
get{...}set{...}
}
}
class BaseClass
{
public virtual string P1
{
get;
get;
}
//showmessage

}
cctvsoft 2006-10-27
  • 打赏
  • 举报
回复
可以在基类中添加一个字段bool blIsA(做标记),分别在A,B里赋值,然后在基类中调用
MessageBox.Show()方法,不过得加个if判断blIsA,执行MessageBox.Show(A.P1)还是MessageBox.Show(B.P2)。
xc_lw 2006-10-27
  • 打赏
  • 举报
回复
不重写方法,有没有办法.在基类中动态调用.
股神 2006-10-27
  • 打赏
  • 举报
回复
up
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-26 10:46
社区公告

让您成为最强悍的C#开发者