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