【发布时间】:2009-09-09 15:10:33
【问题描述】:
好吧,这个标题有点不清楚,但我想不出更好的方式来表达它,除了解释它......
假设我有一个类Animal,带有一个静态的通用方法:
public static T Create<T>() where T : Animal {
// stuff to create, initialize and return an animal of type T
}
我有子类Dog、Cat、Hamster 等。为了得到Dog,我可以写:
Dog d = Animal.Create<Dog>();
或
Dog d = Dog.Create<Dog>();
这实际上是一回事。但是写Dog 这么多次似乎有点傻,因为我已经通过Dog 子类调用了静态方法。
你能想到在基类中编写Create() 方法以便我可以调用的任何巧妙方法
Dog d = Dog.Create();
Cat c = Cat.Create();
Hamster h = Hamster.Create();
不在每个子类中编写Create() 方法?
【问题讨论】:
标签: c# generics inheritance