据我所知,抽象方法只能存在于抽象类中。尽管如此,我可以看到Microsoft在Xamarin.Forms中做到了这一点:
public static class DependencyService
{
….
public static void Register<T>() where T : class;
….
}
这是NON抽象类中的抽象方法。怎么可能?
这是NON抽象类中的抽象方法
不?它不是。您从哪里得到的想法是抽象方法?这是一个开放类型的方法,您可以通过提供类型(Register())来调用,并且与抽象无关。
现在,您说-它没有身体。当然?它看起来更像是您只是不看正文,因为您无法访问该代码,并且这可能是“开放引用”样式的代码,而无法访问源代码样式(显示签名但没有正文)。
抽象方法必须指定了abstract
关键字。您问题中的方法签名:
public static void Register<T>() where T : class;
没有NOT具有abstract
关键字。
Xamarin.Forms
是一个开放源代码项目,您可以在其GitHub存储库中查看源代码。
单击here查看您所引用的方法的实际代码。