读书人

传进入一个动物如果它是猫就return

发布时间: 2012-11-09 10:18:48 作者: rapoo

传进来一个动物,如果它是猫就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(); }} 

读书人网 >C#

热点推荐