if(a=1)
{
    DalA dal = new DalA();
}
else
{
    DalB dal = new DalB();
}我想写成:申明 dal;
if(a=1)
{
    dal = new DalA();
}
else
{
    dal = new DalB();
}怎么申明啊? 是不是用他们共同父类申明吗? 我用Object dal; 有错误。
大家帮忙

解决方案 »

  1.   

    public class Dal {}
    public class DalA:Dal {}
    public class DalB:Dal {}public class Other
    {
        public Dal CreateBy(int value)
        {
            return value == 1 ? new DalA() : new DalB();
        }
    }
      

  2.   

    public interface IDal{  void func(); }
    public class DalA:IDal( public void func(){} )
    public class DalB:IDal{ public void func(){} }
    public class Factory
    {
        public static IDal CreateInstance(int i)
        {
             IDal dal;
             switch(i)
             {
                 case 1:
                 dal = new IDalA();
                 break;
                 case 2:
                 dal = new IDalB();
                 break;
                 drfault:
                 dal=null;
                 break; 
             }
             return dal;
       
        }
    }public class Program
    {
        static void Main(string[] args)
        {
            IDal dal=Factory.CreateInstance(1);
            if(dal!=null)
            { //.....}
        }
    }