我目前正在开发一个UWP应用程序,其中我在PCL中使用自引用泛型类型约束.
这里描述了PCL的类.
首先,实现自引用泛型类型约束的类(此类也实现new()约束)
public abstract class A<T>
where T : A<T>, new()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
然后,我有一个扩展Windows.UI.Xaml.Controls.Page该类的基类:
public abstract class MyPage<T> : Page
where T : A<T>, new()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
我还有一个扩展Windows.UI.Xaml.Application类的基类:
public abstract class MyApplication<T> : Application
where T : A<T>, new()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
我的UWP课程以下列方式扩展了上述PCL的类...
首先,我有一个B扩展类的类A:
public sealed class B : A<B>
{
//...
}
Run Code Online (Sandbox Code Playgroud)
然后,我有App扩展该类的类MyApplication.csharp文件:
public sealed partial class App : MyApplication<B> …Run Code Online (Sandbox Code Playgroud)