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

C# 从抽象类的静态方法返回类引用,c#,static,abstract-class,C#,Static,Abstract Class,我理解抽象类不能被实例化。此外,我们不能在静态方法内部使用new关键字 我想知道XMLReader的静态Create方法如何在下面的语句中返回其类的引用: XmlReader=XmlReader.Create() 谢谢它返回派生类的实例。它不直接构造XmlReader abstract class A { public static A Create() { return new B(); } } class B : A { } 这是相同的基本思想,您可以通过调用XmlReader.C

我理解抽象类不能被实例化。此外,我们不能在静态方法内部使用new关键字

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

XmlReader=XmlReader.Create()


谢谢

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

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

这是相同的基本思想,您可以通过调用
XmlReader.Create
GetType()
来判断它的作用。它不会返回
typeof(XmlReader)
,而是返回派生类的实例。它不直接构造
XmlReader

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

这是相同的基本思想,您可以通过调用
XmlReader.Create
GetType()
来判断它的作用。它不会返回
typeof(XmlReader)

在静态方法中使用new关键字没有问题,尽管它取决于您试图实例化什么以太在静态方法中使用new关键字没有问题,尽管它取决于您试图实例化什么