首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

传进入一个动物,如果它是猫就return new 猫();是狗就return new 狗()

2012-11-09 
传进来一个动物,如果它是猫就return new 猫()是狗就return new 狗()怎么做?不要用typeof,因为要列举的太

传进来一个动物,如果它是猫就return new 猫();是狗就return new 狗();
怎么做?
不要用typeof,因为要列举的太多了
C#初学,java里头可以用反射做。。。

[解决办法]
C#也可以使用反射来做
[解决办法]
string animal = "cat";
object a = Activator.CreateInstance(animal);
return a;
[解决办法]
设计模式里的工厂模式专门解决你这个问题!请自行查阅"工厂模式"
[解决办法]

探讨
设计模式里的工厂模式专门解决你这个问题!请自行查阅"工厂模式"

[解决办法]
C# code
public abstract class Animal{     public abstract string AnimalType {get;}     public override string ToString(){ return AnimalType; }//...//...//...}public class Cat:Animal{   public override string AnimalType  {     get{ return "Cat";}  }}public class Dog:Animal{   public override string AnimalType  {     get{return "Dog";}  }}......public class EnterClass{  public static void Main(string[] argv)  {      //      ...      //start foreach animal in animals      Console.WriteLine(animal.ToString());      //end foreach  }}
[解决办法]
用泛型:

C# code
class AnimalBuilder{    static public T Create<T>(T refobj) where T : new()    { return new T(); }} 

热点排行