C#:在接口(interface)中实现抽象属性以实现子级

标签 c# class interface parent-child abstract

我在网上找不到答案,所以我想请求你的帮助。 我有一个抽象类:

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/

相关文章:

c# - Try/Catch 没有捕捉到 WebException

Java 泛型 API 架构

php - Laravel 错误接口(interface)类不存在

python - 编写 'anonymous' 子类进行单元测试?

java - 从 XML 文件生成 Java 类

java - 如何通知事件的类组件?

C#:在 ASP.NET 中向 Parallel.ForEach() 添加上下文

c# - 用于原始拜耳相机的 EmguCV 视频捕获

c# - 在 poly2tri 中的 PolygonPoints 上附加额外数据

c++ - 如何在类中使用结构的 std::unique_ptr?