微软是怎么做到的:静态类中的抽象方法?

S I*_*zik 0 c# static abstract xamarin

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

  public static class DependencyService
  {
    ….
        public static void Register<T>() where T : class;
    ….
  }
Run Code Online (Sandbox Code Playgroud)

这是非抽象类中的抽象方法。怎么会这样?

小智 5

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

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

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