从抽象类的静态方法返回类引用

时间:2016-05-03 08:32:53

标签: c# static abstract-class

我知道抽象类无法实例化。另外,我们不能在静态方法中使用new关键字。

我想知道XMLReader的静态Create方法如何在以下语句中返回其类的引用:

XmlReader xmlReader = XmlReader.Create()

由于

1 个答案:

答案 0 :(得分:3)

它返回派生类的实例。它不直接构造XmlReader

abstract class A {
    public static A Create() { return new B(); }
}
class B : A {
}

这是一个基本的想法,你可以通过在GetType()的结果上调用XmlReader.Create来判断它是做什么的。它不会返回typeof(XmlReader)