日期:2014-05-18  浏览次数:20761 次

类A继承了类B,调用类A的时候我希望类A能执行一下它本身的构造函数(2个类里面的方法都是静态的)
我先把2个类的结构和关系说明一下:

C# code
类B:
public class B
{
   public static string StrConnection
   {
      get;
      set;
   }

   public static int GetDataSet(string sql)
   {
      StrConnectionconn=new StrConnection(StrConnection),
      //.....此处代码省略....
   }
}


类A:
public class A:B
{
   public static string conn="server=.;uid=sa;pwd=123;database=test";

   static A()
   {
      B.StrConnection=conn;
   }
}


我在页面代码中直接这样调用
dataset ds=A.GetDataSet("select * from table1");
很显然是不能行的,因为这样相当于是直接调用类B中的GetDataSet方法,
而类B中的那个StrConnection属性是在类A中赋值的,
我调试的结果是类A的那个静态构造函数根本没执行

我把类这样写是因为:项目需要用到3个数据库,我把B类作为基类,让其他的类去继承它,而其他继承B类的类只要变量conn值不同就可以访问不同的数据库了,问题是怎么样把变量conn赋给B类的StrConnection呢?

有没有什么办法让类A中的构造函数执行一下?

------解决方案--------------------
全是静态的成员的类本身就没有了继承的意义。
------解决方案--------------------
别纠结了,你一个数据库连接取表类,真的不用这么复杂,一个静态类就能搞定了。。。。。。

你连3个数据库,生成同一类的三个实例就可以了。