有三个.cs
一个是接口IDProvider.cs
一个是类继承接口DataProvider.cs
还有一个是实例化接口DbProvider.cs
在Provider.cs实例化接口的时候
Public Static DbProvider()
{
  DataProvider provider = new DataProvider();这样就可以了吗?
  //还是
  //DataProvider provider = (IDProvider)new DataProvider;这个强制转换有什么用呢?
}
两个有什么不一样呢?还有个问题
  private static readonly IDbProvider dp = null;       static DbProvider()
        {
            dp = (IDbProvider)new DataProvider();
        }        public static IDbProvider Instance()
        {
            return dp;
        }        
这样写和 static DbProvider()
        {
            dp = (IDbProvider)new DataProvider();
            return dp;
        }
两种有什么不一样呢?
为什么不直接在一个方法里返回呢?
还要特意在写一个?

解决方案 »

  1.   

    还有个问题 
         
    static DbProvider()
            {
                dp = (IDbProvider)new DataProvider();
            }        public static IDbProvider Instance()
            {
                return dp;
            }   
    那当我们调用DbProvider.Instance().ShowNews()的时候是调用接口里面的方法还是调用了那个继承接口类里面的方法呢?
      

  2.   

    IDProvider provider = new DataProvider();