Microsoft如何做到:静态类中的抽象方法?

问题描述 投票:0回答:1

据我所知,抽象方法只能存在于抽象类中。尽管如此,我可以看到Microsoft在Xamarin.Forms中做到了这一点:

  public static class DependencyService
  {
    ….
        public static void Register<T>() where T : class;
    ….
  }

这是NON抽象类中的抽象方法。怎么可能?

c# xamarin static abstract
1个回答
2
投票

这是NON抽象类中的抽象方法

不?它不是。您从哪里得到的想法是抽象方法?这是一个开放类型的方法,您可以通过提供类型(Register())来调用,并且与抽象无关。

现在,您说-它没有身体。当然?它看起来更像是您只是不看正文,因为您无法访问该代码,并且这可能是“开放引用”样式的代码,而无法访问源代码样式(显示签名但没有正文)。


0
投票

抽象方法必须指定了abstract关键字。您问题中的方法签名:

public static void Register<T>() where T : class;

没有NOT具有abstract关键字。

Xamarin.Forms是一个开放源代码项目,您可以在其GitHub存储库中查看源代码。

单击here查看您所引用的方法的实际代码。

© www.soinside.com 2019 - 2024. All rights reserved.