gpt4 book ai didi

c# - 使用派生的属性实现接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:53 26 4
gpt4 key购买 nike

说如果我有

interface ISomething
{
Shape Entity { get; set; }
}

public class Shape
{ }

public class Circle : Shape
{ }

public class Square : Shape
{ }

我怎样才能达到这样的效果:

public class CircleEntity : ISomething
{
Circle Entity { get; set; }
}

public class SquareEntity: ISomething
{
Square Entity { get; set; }
}

因为 CircleEntitySquareEntity 没有将 Entity 实现为 Shape 类型。

最佳答案

通过使用 generic interface ,您可以创建实体类型变量,它可以在派生类型上定义。

interface ISomething<T> where T:Shape
{
T Entity { get; set; }
}

public class CircleEntity : ISomething<Circle>
{
Circle Entity { get; set; }
}

public class SquareEntity: ISomething<Square>
{
Square Entity { get; set; }
}

关于c# - 使用派生的属性实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38052658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com