申明一个对象变量 更具条件实例化不同的对象

qiujiangcanyue 2010-09-30 12:35:43
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; 有错误。
大家帮忙
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-09-30
  • 打赏
  • 举报
回复
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();
}
}
ajq1989 2010-09-30
  • 打赏
  • 举报
回复
多态 ....
qq346127416 2010-09-30
  • 打赏
  • 举报
回复
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)
{ //.....}
}
}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧