我在网上找不到答案,所以我想请求你的帮助。 我有一个抽象类:
public abstract class AbstractClass
{
String Name { get; }
}
child 1级:
public class ApplicationDetailsModel : AbstractClass
{
// This will implement unique properties
}
每个实现 IComponent 的类都将实现“AbstactClass”的子类。
示例实现:
public class ExampleClass : IComponent
{
public ApplicationDetailsModel DetailsModel;
}
和一个界面
public interface IComponent : IPageViewModel
{
AbstractClass DetailsModel { get; }
}
此示例无法编译,因为接口(interface)强制实现
AbstractClassDetailsModel = new ApplicationDetailsModel();
是否有正确的方法来强制实现接口(interface)中特定抽象类的子属性?
最佳答案
使你的界面具有约束的通用性
public interface IComponent<T> : IPageViewModel
where T : AbstractClass
{
T DetailsModel {get;}
}
举例:
public class ExampleClass : IComponent<ApplicationDetailsModel>{
{
public ApplicationDetailsModel DetailsModel { get; private set; }
}
关于C#:在接口(interface)中实现抽象属性以实现子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48586183/